{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Week 2 homework\n",
    "在 Pima Indians Diabetes Data Set(皮马印第安人糖尿病数据集)进行分类器练习 ---- Logistic 回归&SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#导入工具集\n",
    "#数据读取及基本处理\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "# 画图工具\n",
    "from matplotlib import pyplot\n",
    "import matplotlib.pyplot as plt # #画图\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "\n",
    "#特征工程需要的工具集\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "#Logistic回归需要的工具集\n",
    "from sklearn.metrics import log_loss  \n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.linear_model import LogisticRegressionCV\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "#SVM需要的工具集\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import confusion_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
       "0            6      148             72             35        0  33.6   \n",
       "1            1       85             66             29        0  26.6   \n",
       "2            8      183             64              0        0  23.3   \n",
       "3            1       89             66             23       94  28.1   \n",
       "4            0      137             40             35      168  43.1   \n",
       "\n",
       "   DiabetesPedigreeFunction  Age  Outcome  \n",
       "0                     0.627   50        1  \n",
       "1                     0.351   31        0  \n",
       "2                     0.672   32        1  \n",
       "3                     0.167   21        0  \n",
       "4                     2.288   33        1  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#导入数据\n",
    "dpath = './'\n",
    "train = pd.read_csv(dpath +\"diabetes.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 768 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 768 non-null int64\n",
      "Glucose                     768 non-null int64\n",
      "BloodPressure               768 non-null int64\n",
      "SkinThickness               768 non-null int64\n",
      "Insulin                     768 non-null int64\n",
      "BMI                         768 non-null float64\n",
      "DiabetesPedigreeFunction    768 non-null float64\n",
      "Age                         768 non-null int64\n",
      "Outcome                     768 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 54.1 KB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看出，所有数据都是数值弄特征，所以不需要进行类别特征处理。\n",
    "数值中并没有空值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>120.894531</td>\n",
       "      <td>69.105469</td>\n",
       "      <td>20.536458</td>\n",
       "      <td>79.799479</td>\n",
       "      <td>31.992578</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>31.972618</td>\n",
       "      <td>19.355807</td>\n",
       "      <td>15.952218</td>\n",
       "      <td>115.244002</td>\n",
       "      <td>7.884160</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.300000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>127.250000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.000000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Pregnancies     Glucose  BloodPressure  SkinThickness     Insulin  \\\n",
       "count   768.000000  768.000000     768.000000     768.000000  768.000000   \n",
       "mean      3.845052  120.894531      69.105469      20.536458   79.799479   \n",
       "std       3.369578   31.972618      19.355807      15.952218  115.244002   \n",
       "min       0.000000    0.000000       0.000000       0.000000    0.000000   \n",
       "25%       1.000000   99.000000      62.000000       0.000000    0.000000   \n",
       "50%       3.000000  117.000000      72.000000      23.000000   30.500000   \n",
       "75%       6.000000  140.250000      80.000000      32.000000  127.250000   \n",
       "max      17.000000  199.000000     122.000000      99.000000  846.000000   \n",
       "\n",
       "              BMI  DiabetesPedigreeFunction         Age     Outcome  \n",
       "count  768.000000                768.000000  768.000000  768.000000  \n",
       "mean    31.992578                  0.471876   33.240885    0.348958  \n",
       "std      7.884160                  0.331329   11.760232    0.476951  \n",
       "min      0.000000                  0.078000   21.000000    0.000000  \n",
       "25%     27.300000                  0.243750   24.000000    0.000000  \n",
       "50%     32.000000                  0.372500   29.000000    0.000000  \n",
       "75%     36.600000                  0.626250   41.000000    1.000000  \n",
       "max     67.100000                  2.420000   81.000000    1.000000  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "查看类别分布是否均衡"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ce17b4358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(train.Outcome);\n",
    "pyplot.xlabel('Outcome');\n",
    "pyplot.ylabel('Number of occurrences');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由上可以看出，只有两类，两者相差不到2倍，可以算是均衡"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#分别特征集与目标集\n",
    "y = train['Outcome'].values\n",
    "X = train.drop('Outcome',axis=1)\n",
    "columns = X.columns\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.352941</td>\n",
       "      <td>0.743719</td>\n",
       "      <td>0.590164</td>\n",
       "      <td>0.353535</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.500745</td>\n",
       "      <td>0.234415</td>\n",
       "      <td>0.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.058824</td>\n",
       "      <td>0.427136</td>\n",
       "      <td>0.540984</td>\n",
       "      <td>0.292929</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.396423</td>\n",
       "      <td>0.116567</td>\n",
       "      <td>0.166667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.470588</td>\n",
       "      <td>0.919598</td>\n",
       "      <td>0.524590</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.347243</td>\n",
       "      <td>0.253629</td>\n",
       "      <td>0.183333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.058824</td>\n",
       "      <td>0.447236</td>\n",
       "      <td>0.540984</td>\n",
       "      <td>0.232323</td>\n",
       "      <td>0.111111</td>\n",
       "      <td>0.418778</td>\n",
       "      <td>0.038002</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.688442</td>\n",
       "      <td>0.327869</td>\n",
       "      <td>0.353535</td>\n",
       "      <td>0.198582</td>\n",
       "      <td>0.642325</td>\n",
       "      <td>0.943638</td>\n",
       "      <td>0.200000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies   Glucose  BloodPressure  SkinThickness   Insulin       BMI  \\\n",
       "0     0.352941  0.743719       0.590164       0.353535  0.000000  0.500745   \n",
       "1     0.058824  0.427136       0.540984       0.292929  0.000000  0.396423   \n",
       "2     0.470588  0.919598       0.524590       0.000000  0.000000  0.347243   \n",
       "3     0.058824  0.447236       0.540984       0.232323  0.111111  0.418778   \n",
       "4     0.000000  0.688442       0.327869       0.353535  0.198582  0.642325   \n",
       "\n",
       "   DiabetesPedigreeFunction       Age  \n",
       "0                  0.234415  0.483333  \n",
       "1                  0.116567  0.166667  \n",
       "2                  0.253629  0.183333  \n",
       "3                  0.038002  0.000000  \n",
       "4                  0.943638  0.200000  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将特征集进行归一化处理\n",
    "#目标集是分类值，且只有0和1,所以不做归一化\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "mn_x = MinMaxScaler()\n",
    "numerical_features = ['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age']\n",
    "temp = mn_x.fit_transform(X[numerical_features])\n",
    "X = pd.DataFrame(data=temp, columns=numerical_features, index =X.index)\n",
    "X.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.226180</td>\n",
       "      <td>0.607510</td>\n",
       "      <td>0.566438</td>\n",
       "      <td>0.207439</td>\n",
       "      <td>0.094326</td>\n",
       "      <td>0.476790</td>\n",
       "      <td>0.168179</td>\n",
       "      <td>0.204015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.198210</td>\n",
       "      <td>0.160666</td>\n",
       "      <td>0.158654</td>\n",
       "      <td>0.161134</td>\n",
       "      <td>0.136222</td>\n",
       "      <td>0.117499</td>\n",
       "      <td>0.141473</td>\n",
       "      <td>0.196004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.058824</td>\n",
       "      <td>0.497487</td>\n",
       "      <td>0.508197</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.406855</td>\n",
       "      <td>0.070773</td>\n",
       "      <td>0.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.176471</td>\n",
       "      <td>0.587940</td>\n",
       "      <td>0.590164</td>\n",
       "      <td>0.232323</td>\n",
       "      <td>0.036052</td>\n",
       "      <td>0.476900</td>\n",
       "      <td>0.125747</td>\n",
       "      <td>0.133333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.352941</td>\n",
       "      <td>0.704774</td>\n",
       "      <td>0.655738</td>\n",
       "      <td>0.323232</td>\n",
       "      <td>0.150414</td>\n",
       "      <td>0.545455</td>\n",
       "      <td>0.234095</td>\n",
       "      <td>0.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Pregnancies     Glucose  BloodPressure  SkinThickness     Insulin  \\\n",
       "count   768.000000  768.000000     768.000000     768.000000  768.000000   \n",
       "mean      0.226180    0.607510       0.566438       0.207439    0.094326   \n",
       "std       0.198210    0.160666       0.158654       0.161134    0.136222   \n",
       "min       0.000000    0.000000       0.000000       0.000000    0.000000   \n",
       "25%       0.058824    0.497487       0.508197       0.000000    0.000000   \n",
       "50%       0.176471    0.587940       0.590164       0.232323    0.036052   \n",
       "75%       0.352941    0.704774       0.655738       0.323232    0.150414   \n",
       "max       1.000000    1.000000       1.000000       1.000000    1.000000   \n",
       "\n",
       "              BMI  DiabetesPedigreeFunction         Age  \n",
       "count  768.000000                768.000000  768.000000  \n",
       "mean     0.476790                  0.168179    0.204015  \n",
       "std      0.117499                  0.141473    0.196004  \n",
       "min      0.000000                  0.000000    0.000000  \n",
       "25%      0.406855                  0.070773    0.050000  \n",
       "50%      0.476900                  0.125747    0.133333  \n",
       "75%      0.545455                  0.234095    0.333333  \n",
       "max      1.000000                  1.000000    1.000000  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ZBuqwIiIiIiI+CF9D4yIiIiIiIiPqQIjIiIiIuKH9BQyERERERERH1MDRkRERETED6V44edqGGPaGmO2GWN2GmOevUxcD2OMNcZEXm57asCIiIiIiIhHGGMCgA+AW4AqwO3GmCqZxOUFHgN+u9I21YAREREREfFD1gs/V6EesNNau9ta+xfwDdA5k7gXgdeAc1faoBowIiIiIiLiKeHAH+mmD7jmpTHG1AJKWGtnXc0G9RQyERERERE/5I2nkBljHgIeSjdrvLV2fPqQTFZLK94YYxzA20Cfq31NNWBERERERPzQ1Q6y/zdcjZXxlwk5AJRIN10ciEs3nReoBkQbYwBCgB+NMZ2stasy26C6kImIiIiIiKesBCoYY8oYY3IAtwE//r3QWnvCWlvYWlvaWlsaWAFcsvECqsCIiIiIiPglb1RgrsRam2yM6Q/MAwKACdbaTcaYkcAqa+2Pl99CRmrAiIiIiIiIx1hr5wBzLpo3/BKxTa+0PTVgRERERET8kPXCIH5fUANGromjZ//0dQpZ2ob8J32dQpbWMV+G77OSixxO1pBF+fdmr/3Q1ylkefWq3eXrFLIsZ0pW6JAkeXzEyQAAIABJREFUogaMiIj4gfa1+vo6hSxPjReR/x5/bXLqlp6IiIiIiGQbqsCIiIiIiPghVWBERERERER8TBUYERERERE/ZH2dgIeoAiMiIiIiItmGKjAiIiIiIn4oxU+/B0YVGBERERERyTZUgRERERER8UN6CpmIiIiIiIiPqQIjIiIiIuKHVIERERERERHxMVVgRERERET8kL4HRkRERERExMdUgRERERER8UP++j0wasCIiIiIiPghDeIXERERERHxMVVgRERERET8kAbxi4iIiIiI+JgqMCIiIiIifijFT2swqsCIiIiIiEi2oQqMiIiIiIgf0lPIREREREREfEwVGBERERERP+SfI2BUgRERERERkWxEFRgRERERET+kMTAiPtSmdVM2bVzC1s1LefqpfhmW58iRg68njWXr5qUsWzqTUqWKA1CwYAEWzP+exGPbefedUW7r3HprZ9auWcCa1VHMnvkVhQoV8Mq+eFqtm2szZtFYPlzyEd369siwvNMDnXlv4Qe8Pe89Xpg8iiLhRQAoXaUMr/zwOu8uSF3WuGMTb6fuNVVursmIhe/wQvR7tH60c4blLe5vz/Cot3hu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iIj4Ieuno2BUgRERERERkWxDFRgRERERET+kMTAiIiIiIiI+pgqMiIiIiIgfStEYGBEREREREd9SBUZERERExA/5Z/1FFRgREREREclGVIEREREREfFDGgMjIiIiIiLiY6rAiIiIiIj4IX0PjIiIiIiIiI+pAiMiIiIi4oesn46BUQNGRERERMQP+WsXMjVg5JoIdAT4OoUsbfdfR32dQpY2/2Scr1PI8rYWrODrFLI2/7zJKD7w+8YvfZ1Clpa3eFNfpyCiBoyIiMh/Qb1qd/k6hSxPjRfxN/7ahUyD+EVEREREJNtQBUZERERExA/56xgYVWBERERERCTbUAVGRERERMQPpViNgREREREREfEpVWBERERERPyQf9ZfVIEREREREZFsRBUYERERERE/lOKnNRhVYEREREREJNtQBUZERERExA9ZVWBERERERER8SxUYERERERE/lOLrBDxEFRgREREREck2VIEREREREfFDegqZiIiIiIiIj6kCIyIiIiLih/QUMhERERERER9TBUZERERExA/561PI1IAREREREfFD1qoLmYiIiIiIiE+pAiMiIiIi4of0GGUREREREREfUwVGRERERMQP+esgflVgREREREQk21AFRkRERETED+mLLEV8qFWrm1m/fhGbNi1h0KC+GZbnyJGDL7/8gE2blrBkyQxKlSoOQGRkTX77bS6//TaX33//iU6d2rit53A4WLFiDtOmfeaV/fCGRs3qM2PpZGYu/477+t+VYXntBhF8M/8zVh9YQssOzTIsvy5PMFFrZzB49BPeSNdrWrW6mbXrFrJ+QzRPPvlohuU5cuRg4hdjWL8hmujF0ylZsrjb8uLFwzh4aBMDBz6YNm/suNfYu3cVK1fO83j+3lS3aSQTF0/gq6Wfc3u/WzMsr1G/Oh/N/ZAFe3/ipvY3ui17+LkH+Gzhx3y+6FMGjMz4t+ov/s0xemjIA0xYMJ4JC8bTrOPN3krZqxo1q88PSyczY/m33Nu/d4bltRvU5Ov5E1h5YDEtOzTNsPy6PMHMWzudZ/zsPHS1ho5+i5va30aX3o/4OhWv0me9XK0rNmCMMU5jzDpjzCZjTIwx5gljjMO1LNIY894V1u9jjBnzT5Iyxgz5J/EXrfu5MWaPK+c1xpiG/3D9U65/w4wxU/7XPP7B640wxsS68l1njHnlGm+/izGmSrrpkcaYltfyNTzN4XDw7ruj6Nz5HiIiWtCrVycqVargFtOnz60kJp6gatWbeP/9Txg1ajAAmzZto1GjDtSvfwudOt3NmDEvExAQkLZe//73sW3bTq/ujyc5HA6GvDyIvnc8Sdeb7qBt15aUvaG0W0xCbALDBo5i7g9RmW6j3zMPsWr5Wi9k6z0Oh4O33h5J1y59qFO7FT17dqJSpfJuMff06UVi4glqVG/KmPc/5cVRz7otf/W1YcyfH+0276svp9Clyz2eTt+rHA4HA0cN4Nm7htCn2QO06NyMUhVKusUcjD3Eq0+8zsLpP7vNr1qnCtUiq3F/q4e5r8WDVKxZkZoNa3gzfa/4N8eoQfN6VKhWngfaPELfjo9x6yO9CM4T7M30Pc7hcPDsy0/S/44n6X7TnZmeh+JjD/L8wJf46RLnob7PPMhqPzsP/RNd2rVi3FujfJ2GV+mz3jNSsB7/8YWrqcCctdZGWGurAq2AdsDzANbaVdbaxzyQ1//cgHF5ylobATwLfPS/bMBaG2et7fFP1jHGBFw5KlNvu45xhLX22SuH/yNdgLQGjLV2uLV2wTV+DY+qWzeCXbv2smfPfpKSkvj++5l07NjaLaZjx9Z89VVqe3PatDk0a9YYgLNnz+F0OgHIlSun2xc6hYeHcMstLfjss2+8tCeeV61WFf7Yc4DY/XEkJyXz0/QFNG3jfvc37o8EdmzZRUpKxqF9lWtUpFCRgixf/Lu3UvaKyMgIdu/ax969f5CUlMSUKTPp0MH9PdShfWsmfTUVgB9+mEPTpo0uLOvYmr179rNlyw63dX799XeOHTvh+R3wokoRFYnbG0f8/gSSk5L5eUY0jVs3cos5eOAgu7fsISXF/YPLWkuOnEEE5ggkKEcQgYGBHD+c6M30veLfHKNSN5QiZsV6UpwpnDt7jl1bdlGvaaQ30/e4arUqu52H5k1fmOE8FJ92Hsp48XPhPLTSWylnOZER1cmfL6+v0/Aqfdb7N2NMW2PMNmPMTmNMhmtdV4FkszFmvTFmoTGm1OW294+6kFlrDwEPAf1NqqbGmFmuF65njFlmjFnr+rdiulVLGGN+ciX+fLpkextjfndVHj4yxgS4KhC5XfMmXSYuwFVt2WiM2WCMeTyTlJcA5V3bKOfKYbUx5hdjTCXX/DLGmOXGmJXGmBfT5VbaGLPR9XuwMeY710H91hjzmzEm0rXslKuq8RvQ0BhTxxiz2PU684wxoZd7/Usxxuw1xhR2/R5pjIl2/T7CGDPBGBNtjNltjHks3Tp3u3KMMcZ8aYxpBHQCXncdu3KuY9bDFd/C9f+1wbXNnOle+wVXBWvDlXL1tLCwEA4ciEubjo2NJyys2CVjnE4nJ0/+SaFCBYDUk+KaNQtYtWo+AwYMSTvJvf76CIYMGZ3phXx2VTS0CAlxB9OmD8Ufplhokata1xjDkyMG8NbIf1QwzRbCwopxINb9PRSa4T10ISb9eyg4ODdPPPEIo0e/69WcfaVwaGEOxR9Omz6ccITCoYWvat3Na7awdlkMU1d/y5Q137Jy8Sr279zvqVR95t8co12bd1O/WT1y5spJvgL5iGgYQZGwop5K1SeKhhbhYNyhtOmD8Yco8g/OQ0+M6M/bIz/wVHqSRemz3jOstR7/uRLXDf4PgFtIval+e/reQS5rgUhrbQ1gCvDa5bb5j8fAWGt3u9a7+Iy7FbjJWlsLGA6MTresHnAnEAH0dF2QVwZuBRq7qiVO4E5XBeLvqs+dl4pzbSvcWlvNWlsdyKxjY0dgg+v38cAAa20dYBDwoWv+u8BYa21dIOESu90XOO46qC8CddItuw7YaK2tD/wGvA/0cL3OBOClK7w+wOPpupC5d9zMXCWgDanH9XljTJAxpirwHNDcWlsTGGitXQb8iKsiZa3d9fcGjDG5gM+BW13HLxBIPzDgiLW2NjDWlW8GxpiHjDGrjDGrnM5TV5H2/8YYk2HexX8wl4tZuXIdtWu3pHHjjjz1VD9y5szJLbe04PDhI6xduyHDetlZJofhqk4uALfe242lC5e7XXj4i6t5D2V28Ky1DB36OGPe/5TTp894Kr0sxXAVx+oSwkqHUapCSXrWvZ2ekbdRq3EENepXv9Yp+ty/OUarlqxmxc+/M2bGuwz7YAib12wmxXWh5TcyPxFd1aq9/Pg8JJenz3q/Vg/Yaa3dba39C/gG6Jw+wFq7yFr79wftCqA4l/G/PoUsk7MT+YGJxpgKgAWC0i2LstYeBTDGTAOaAMmkNgRWut6QuYHMzlgtLhE3EyhrjHkfmA3MT7fO68aYocBh4H5jTB6gEfB9ujd/Tte/jYHurt+/BF7NJIcmpDZ0sNZuNMasT7fMCUx1/V4RqAZEuV4nAIi/wutDaheyNzJ53UuZba09D5w3xhwCigHNgSnW2iOuPI9dYRsVgT3W2u2u6YlAP+Ad1/Q017+rgW6ZbcBaO57Uhhm5cpX0WCfI2Nh4ihcPS5sODw8lPv5QpjGxsQkEBASQL19ejh1z77qybdtOzpw5Q9WqFWnUKJL27VvRtm0zcubMSb58efnss3e4997/89RueMXBuMOEpLtjVTS0CIcSjlzVujXqVKN2/Zr06tON4ODcBOUI4szps7z70lhPpes1sbEJFA93fw8lXPQeinPFxF30HoqsG0GXru0Y9dJg8ufPR0pKCufOn+ejcV94eze84nD8YYqmu1teJKQwRxOOXtW6N7ZtzOY1Wzh35hwAvy9aSZXalVn/m39dPPybYwQw6f2vmfT+1wAMHTOYA3tir3mOvnQo7hDF0lWVioUW5fA/OA/Vql+DXn26kdt1Hjp7+gzvvTTOU+lKFqHPes/wRt3JGPMQqT20/jbedY34t3Dgj3TTB4D6l9nk/cDcy73mP67AGGPKknrRfnFj40VgkbW2GqmVj1zpll18cWtJbQRNTDf2o6K1dkRmL5lZnLX2OFATiCb1wvuTdOv8XXFoZa3d6NrPxHTbiLDWVr5MfpnlcCnnrLXOdHGb0r1GdWtt66t4/cwkc+H/J9dFy86n+91JakPUXMV+pHe5fUr/Gn9v32dWrYqhfPkylC5dgqCgIHr27MisWe4DP2fNiqJ379QhS926tSM6ehkApUuXSBvIV7JkOBUqlGPfvj8YNuxVypevT8WKjbn77v5ERy/zixPapnVbKFm2OOElQwkMCqRtl5Ysnr/0qtYd0u8F2kZ2o13d7rw1cgyzvp/rF40XgNWrYyhXvjSlShUnKCiIHj06Mnu2+3to9pwo7uydei+ja9d2LF6c+h5q3aoXVSo3oUrlJnzwwQTeeP0Dv228AGyN2UZ4mXBCSoQQGBRI885NWRa1/KrWPRR7iJoNauAIcBAQGEDNBjXYt8P/upD9m2PkcDjId33q2IaylctQtlIZVi5e5cl0vW7Tuq2ULFucMNd5qE2XFkRf5XnouX4v0C6yO+3r9uDtkR8w6/uf1Hj5j9BnffZlrR1vrY1M9zP+opDMrjkzvWY1xvQGIoHXL/ea/+jC1BhTBBgHjLHW2otKefmBv28j9blo1VbGmP9v776jrCrPt49/rxlQQAEVEUVEFMWu2F5rYsXEgj+jWGI3GpNgN5pEY4stlliiMSSxgsaWqFFEESxISESUooiAFQuCCoggiMLM/f6xN1NgGDTCPHvOXJ+1Zs3sffYM13nWcObc+2mrAV+STSr/CTAXeFTSDRHxSf5464h4D5gvqXlEzAeeqes6YA7wdUQ8JOltsuFQdYqIWcpWJjs0Iv6hLPiWEfEK8B/gCOAesqFpdRkGHAY8l4/ZW9KYiIlAe0k7RcQLkpoD3SJiXD3//pJMIut5epLqHqL6PAM8krfTdEmr5b0ws8naa1ETgC6SNoiIt4BjgOe/wb/T4CoqKjjzzAvp3/9uysvL6dv3AcaPf4OLLjqbkSPHMmDAYO666wHuuONGxo0byowZMzn22FMB2Hnn7TnnnN7Mnz+fyspKzjjjt0yf/lniZ7T8VFRU8Pvzr6fPfTdQVl7Ov+57nLcnvkvvX53EuDETeH7QMDbrvgk33PF72qzSmt167Ervc0/k4N0WX+a0lFRUVPDLsy/i0cf6UV5eTr9+DzJ+/JtccOFZjBo1licGPE3fux7kttuv59WxQ/jss5kcd+xpS/25d911E9/7/o60a7cqb7z5ApdffgP9+j7YAM9o+amsqOSmC//ENX//PWVlZTz5wFNMeuM9TjjnOCa+8gb/HfwCG23Vjctuu4SV267MTj125ISzj+WEvX7K8wP+zda7dOeOp28lInhpyEu88PTw1E9pmfsubVTevJw/PnwDAHO/mMsVp19NZUVpjc2vqKgegbCXAAAgAElEQVTg6vNv4M/3XU9ZeTmP3vc470x8l1/86iRez1+HNu2+Mdfnr0Pf77ELPz/3JHqV+OvQt3HuxVfx0uhXmTlzFnsddDS9TzyGQ3p+kxHmjZf/1i8fBdkH5kNgnRrHnYCPFr1I2Sq5vwV2y0caLZGWNm5XUgXZPJLmZL0CdwPXR0SlpN2BcyLiAGXLFfclG7b1LHBMRHSRdDzZymUrkU2ovzcifpf/7MOB88h6GuYDp0TEcElXk00+H5XPg1nsOrJi6E6qeynOi4gnJd0FPB4RtZZAlrQe2XyOtfLncn9EXJqfv5esmHsIuCAiVpbUJf85m0taKX9u3cgmGW0OHBERb0r6IiJWrvHvdAduIivomgE3RsSt9fz7lwBfLDqETNL3gNuBj8nm1mwXEbsver2yhQYOiIhJko4DziXrNRkdEcdL2gW4laxHpRdw4cL2kbQX8Ic850vALyLiK0mT8n9vmrLFCv4QEbtTj+U5hKwUbLRKvUM5m7y3Zi32OmaL+H+rbbj0i8zqMXNB05jH9V2MeO3u1BEKr3Wn3VNHKLR5895f2giXBrXPOj9c7u/PBn0wsN7nLKkZ8AbZtJDJZO85j4yIcTWu2Zps8v4PI+LNOn9QzZ/5TSceNmX56gnNI2KepK5kvR3d8olIhguYpXEBUz8XMEvnAsa+KxcwS+cCZulcwNSvaAXM3uv8YLm/P3v6g6eW+pwl7Uc2z7ocuCMirpB0KfByRDwm6WmyEU5T8m95PyIOXNLPSzq3oRFpRTZ8rDnZOL5fuHgxMzMzM1u6iHgCeGKRcxfV+PpbbbLuAuYbiIjZZBOKzMzMzMwahVIdafWtVyEzMzMzMzNLxT0wZmZmZmYlqLIYq5Atcy5gzMzMzMxKUEGWUV7mPITMzMzMzMwaDffAmJmZmZmVoEpP4jczMzMzM0vLPTBmZmZmZiWoNPtf3ANjZmZmZmaNiHtgzMzMzMxKUKkuo+weGDMzMzMzazTcA2NmZmZmVoLcA2NmZmZmZpaYe2DMzMzMzEpQeB8YMzMzMzOztNwDY2ZmZmZWgjwHxszMzMzMLDH3wJiZmZmZlaBwD4yZmZmZmVla7oExMzMzMytBXoXMzMzMzMwsMffAmJmZmZmVIK9CZmZmZmZmlph7YMzMzMzMSlCpzoFxAWPLxJjOm6eOUGjXfN0qdYRC23jFNVJHKLzRcz9MHaHQJs+ZljpC4VVUVqaOYCVg9odDUkcwcwFjZmZmBtC60+6pIxSai5fGp1TnwLiAMTMzMzMrQd7I0szMzMzMLDH3wJiZmZmZlaDKEp3E7x4YMzMzMzNrNNwDY2ZmZmZWgjwHxszMzMzMLDH3wJiZmZmZlSDPgTEzMzMzM0vMPTBmZmZmZiXIc2DMzMzMzMwScw+MmZmZmVkJ8hwYMzMzMzOzxNwDY2ZmZmZWgjwHxszMzMzMLDH3wJiZmZmZlSDPgTEzMzMzM0vMPTBmZmZmZiXIc2DMzMzMzMwScw+MmZmZmVkJiqhMHWG5cA+MmZmZmZk1Gu6BMTMzMzMrQZUlOgfGBYyZmZmZWQkKL6NsZmZmZmaWlntgzMzMzMxKUKkOIXMPjDU6K31vW9Yb+DfWH3wbq5186GKPt/3R3mww/D66PHozXR69mbaH/qDW42UrtaTrv/vR4aJfNFTkBrX5bt258pk/8vshN7PfLw5a7PF9TjyAywffwO+evI5z/n4x7dZeveqx1Tquztn9LuTyp2/k8sE30K5T+4aM3mC22m1rbnj2Fv74fB/+7xcHL/b4/icdyHVP38w1A2/kgnsvZfW1a7dDy5Vb0ufF2znh0p82VOQG9b09d2LgCw8xeMQjnHz6cYs9vt1OW/PIM/fw+pTh/KDnXrUeu+2Bm3j5ref4699vaKi4DaZHj90YPeYZXh07hF/+cvHXjxVWWIG+/f7Eq2OHMOT5f9G5c6daj3fq1JGPPxnHGWdkvzdrr70WTzx5HyNHPc1LLw+id+8TGuR5LC89euzGq68+x7hxQznnnN6LPb7CCitw9923MG7cUIYOfZR1183aZ7vttuLFF5/kxRefZMSIgRx4YPVrdtu2bbj33r/wyivPMmbMM+ywwzYN9nyWh+XRRgBlZWUMH/4EDz98Z4M8jyK44Mrr+f7+R3DQ0T9PHcUScA9MEyHpR8DDwCYRMSF1nv9ZWRkdLu7NByf8lvlTp9HloRv54pnhfP32B7Uum/3EUD6+tE+dP2L1M49l7ojXGiJtg1NZGUdfehLXHX0pM6bO4KLHrmLM4Jf56K0Pq655//V3ubTnr/l63tfsfvQ+HHreMfzl1OzN5knXn8bjf3qI14e9yoqtWhCVpbf8osrK+MllP+OKoy5m+tTp/P6xa3n56RFMfrO6jSaNe4fzDvglX8/7mh5H/5CjzjuOP576h6rHD/vlkbz+4rgU8Ze7srIyLr7q15xw6ClM/ehjHhrUj2cGDuXtN96tumbKh1P5zWmXcGLvYxb7/tv/dDctWrbgiOMWLwwbs7KyMq6/4VJ6HnA0kydP5d//fowBAwYzYcJbVdccd/xhzJz5OVtusTu9evXksst/w3HHnlr1+NXXXMigQUOqjisqFnD+eZczZsw4Vl55JYb9pz/PPvvvWj+zsSgrK+OPf7yc/fc/ig8/nMJ//tOfxx8fzIQJb1Zdc/zxhzNz5udsttn3OfTQnlx++Xkcc8wpjBs3kZ13PoCKigrWXHMNRowYyIABT1NRUcF1113C4MFDOPLIn9O8eXNatWqZ8Fl+N8urjQBOPfUnTJz4Fq1bt0719BrcQfv14MhDDuT8y/6w9IubMM+Bscbux8Aw4IjUQb6LFlt24+v3PmL+B1Nh/gJmDRjKynvv9I2/f8XNNqDZ6qswd9io5ZgynfW7b8An703l0w8+oWL+Al7s/x+677N9rWsmvDCOr+d9DcA7o99k1TXbAdBxg06Ul5fx+rBXAfhq7ryq60rJBt035ONJU/jkg4+pmL+A//YfxvY9dqh1zbgXXqt67m+Onki7tdpVPbbe5l1ZZfVVeHXomAbN3VC23GYz3pv0AR+8N5n58xcw4F+D2Hvf3WpdM/mDKUx8/S0q69hf4IV/v8ScL+Y2VNwGs9123Xnn7feYNOkD5s+fzz//2Z8DDtin1jUH7L8Pf7/nIQAeeeQJdt995+rHeu7DpHffZ/z46jerU6d+ypgxWSH8xRdzmDjxbTp2XLMBns2yt/323Xn77Um8++77zJ8/n3/8oz89e9Zun5499+Gee/4JwMMPP8Eee+wCwJdfzqt6I96ixYpVb7hat16ZXXf9f9x55/0AzJ8/n88/n9VQT2mZWx5tBLD22muy7757VbVTU7Fd9y1o26bpFGxWmwuYJkDSysAuwInkBYykMkl/ljRO0uOSnpDUK39sW0nPSxop6SlJayWMX0vzDu1YMHVa1fGCqdNo3qHdYte13mcXujx2Cx1vOp9ma+ZDpCQ6/OYkPrn69oaK2+BW6bAaMz6qbp/Ppkxn1Q6rLfH67x22J2OHjAagw/prMXfWXE75y7lcPOBaDj3vGFRWei8Rq625GtOnVLfR9CnTWXXNJbfRHofvzZghWcEriWMuOIF7ruy73HOm0mGtNZg6+eOq46kffUKHtdZImKgYOnbswIeTP6o6njx5Cmt17LDEayoqKpg1azbt2q1Kq1YtOfvsn3PllX9c4s/v3LkTW221KS+91DgL444d1+TDD2u3T8fF2qf6mprtA9mb+1Gjnubllwdx2mnnU1FRwXrrdebTT2dw663XMXz4E/Tpc3Wj7oFZHm0EcO21l3D++VdSWYI95vbdVUYs948USu/didXlIGBgRLwBzJC0DXAw0AXYAjgJ2AlAUnPgZqBXRGwL3AFckSJ0naTFzy3yn2f2cy/y9h7HM+nAU5j73zGsdfUvAVjlqP354vmXaxVApUZ1tM+Suo93POh7dNmyKwP/9igAZeXlbLj9xjx4RV8uO/DXtO/cgV177b484yYh6vodqvvaXX+0G1232IDH/voIAPscuy9jnhtZqwAqNXX/FyvNIQjfxjf6v7WEay644Cz+dPPtzJlTd8/USiu14t77+vCrX13K7NlfLJO8De2btE9917z00hi22WZvdtmlJ+eeeworrrgizZo1Y+utN+dvf7ubHXfcjzlzvuTccxefN9JYLI822nffvfj002mMHj12+YQ2KyjPgWkafgzcmH99f37cHPhHRFQCUyU9lz++EbA5MDh/IS0HptT1QyWdDJwM8Ls1NuOwtp2X2xNYaP7UadU9KkCzNVdn/iczal1TOXN21dczHxxI+3OzibEtu29Cq+02Y9Uj90crtUDNm1M590s+/cNdyz13Q/ls6nRW61jdPquu1Y6Zn3y22HWb7rIFB5x6CFcffhELvl5Q9b3vvz6JTz/4BIDRg0bQdetu/PvBZxsmfAOZPnU67daqbqN2a7Xjs49nLHbdFrtsycGn9uKSwy6oaqNu22zExttvSo9j9qXFSi1o1rwZ8+bM476r726w/Mvb1I8+Yc21q+8Kr9lxDT6Z+mnCRMUwefJUOq3dsep47bXXYuqUT2pd81F+zUeTp1JeXk6bNq2ZMWMm223fnYN+tB+XX3Eebdu2obKyknlffcVf/9KPZs2ace+9f+GB+//FY48+1dBPa5mZPHkKnTrVbp8pi7TPwmsmL9I+NU2c+BZz585ls802YvLkKUyePKWqV+qRR57gnHMa7+Iry6ONdt55O/bfvwc//OEerLjiirRp05o777yRE044s0GekxVfeBUya4wktQP2BG6TNAk4Fzgc6roNnX0LMC4iuucfW0TEPnVdGBF/i4jtImK7hiheAOaNfYMVunSkeacO0LwZbfb/Pl88M7zWNeXtV636euW9dqia4D/lnGt5e/fjeXvPE/j0qtuZ9a9nSqp4AXj3lbfo0GUtVu+0BuXNm7FDz10YM/ilWtd03mw9jr3yZ9x00lXMnj6rxve+zUptV6L1am0A2GTnzfmoxsT2UvH2K2+y5npr0X6drI127rkrLw8eUeuaLputx0m/7801J17JrOmfV52/+YwbOGXnn3LaridzzxV3MfTh50qqeAEYO/p1uqy3Dp06d6R582bsf9A+PDNwaOpYyY0c+QpdN+jCuut2onnz5vTq1ZMBAwbXumbAE4M56uhDAPjRj/bj+ef/C8A+PQ5j0012ZdNNduWWW+7gD9fewl//0g+APn2uZuLEt7j55sY9tPXll19hgw3Wo0uXdWjevDmHHtqTxx+v3T6PPz6Yo4/uBcDBB+/HkCFZ+3Tpsg7l5eUAdO68Nhtu2JX33vuAjz/+lA8/nMKGG64PwB577FJrDlFjszza6MILr2aDDXZgo4124dhjT2XIkP+6eLEmwT0wpa8X0C8ifrbwhKTngWnAIZL6Au2B3YF7gYlAe0k7RcQL+ZCybhFRjCWXKir5+NI+rHP75VBexuf/HMTXb73P6qcfzbzX3uSLZ19ktWP/j5X33IGoqKBi5mym/Ob61KkbTGVFJfdcdBtn97uAsvIyhj34LB+9+SEHnXU4k8a+zZinX+aw845hxVYt6P3nbGjd9MnTuPmnVxOVlTxwRT/O+fvFSDDptXd4/v6nEz+jZa+yopI7LrqV8/tdTFl5OUMefJoP3/yAQ8/+Me+8+hYjn36Jo88/nhatWnDWn38FwLSPPuXak65MnLxhVFRUcOl513L7gzdTXlbOP+97jLcmvsPpv/4Zr40Zz7NPDWWL7ptyS99radO2DXvs8z1O/9XJ7P+9wwG4t/+trL9BF1qt1JKhrwzg/DMvY9hzw5fyrxZfRUUFvzz7Ih59rB/l5eX06/cg48e/yQUXnsWoUWN5YsDT9L3rQW67/XpeHTuEzz6byXHHnlbvz9xpp+048qhDeG3seF4Y/gQAl1x8DU89NaQBntGyVVFRwZlnXkj//ndTXl5O374PMH78G1x00dmMHDmWAQMGc9ddD3DHHTcybtxQZsyYybH5Cm0777w955zTm/nz51NZWckZZ/yW6dOznuOzzrqIu+66iRVWaM67777PySefk/JpfifLq42aqnMvvoqXRr/KzJmz2Ougo+l94jEc0vMHS//GJqZUhwCrVJ+YZSQNAa6KiIE1zp0ObELW2/J94A1gReD6iBgsqTtwE9CWrMi9MSJure/fmdBtP/8i1eOar1uljlBoc2JB6giFN3pu6fWGLUuT55TuvKRlpcKTvO07mv3hkNQRCq/56usvaYRLEh3abrzc3599/PmEBn/O7oEpcRGxex3nboJsdbKI+CIfZjYCGJs/PoassDEzMzOzRqqyROfAuIBp2h6XtAqwAnBZRExNHcjMzMzMrD4uYJqwunpnzMzMzKw0lOpUEa9CZmZmZmZmjYZ7YMzMzMzMSlCle2DMzMzMzMzScg+MmZmZmVkJ8hwYMzMzMzOzxNwDY2ZmZmZWgrwPjJmZmZmZNRoeQmZmZmZmZpaYe2DMzMzMzEqQl1E2MzMzMzNLzD0wZmZmZmYlKEp0Er97YMzMzMzMrNFwD4yZmZmZWQnyHBgzMzMzM7PE3ANjZmZmZlaCvA+MmZmZmZlZYu6BMTMzMzMrQV6FzMzMzMzMLDH3wJiZmZmZlSDPgTEzMzMzM0vMPTBmZmZmZiXIPTBmZmZmZmaJuQfGzMzMzKwElWb/C6hUu5asaZN0ckT8LXWOInMb1c/ts3Ruo/q5fZbObVQ/t8/SuY2aJg8hs1J1cuoAjYDbqH5un6VzG9XP7bN0bqP6uX2Wzm3UBLmAMTMzMzOzRsMFjJmZmZmZNRouYKxUeTzs0rmN6uf2WTq3Uf3cPkvnNqqf22fp3EZNkCfxm5mZmZlZo+EeGDMzMzMzazRcwJiZmZmZWaPhAsbMzMzMzBoNFzBmTYikdSXtnX/dUlLr1JmscZK0qqQtU+coIknlkjpK6rzwI3UmM7NS0ix1ALNlRdKhwMCImC3pAmAb4PKIGJU4WiFI+inZhl+rAV2BTsBfgL1S5ioSSd2APkCHiNg8f4N+YERcnjhaIUgaAhxI9rdjDPCppOcj4uykwQpE0mnAxcDHQGV+OoAmX+xJqvf3JCKub6gsRZa/Dp0LrEuN92kRsWeyUAUiqQNwJdAxIvaVtCmwU0TcnjiaNSD3wFgpuTAvXnYFfgD0JXszaplTgF2AWQAR8SawRtJExXMrcB4wHyAiXgWOSJqoWNpGxCzgYODOiNgW2DtxpqI5A9goIjaLiC3yjyZfvORaL+XDMv8ARgEXkBUyCz8scxfwFNAxP34DODNZGkvCPTBWSiryz/sDfSLiUUmXJMxTNF9FxNeSAJDUjOzOsFVrFREjFrZRbkGqMAXUTNJawGHAb1OHKagPgM9ThyiiiPhd6gyNxIKI8M23JVs9Ih6UdB5ARCyQVLG0b7LS4gLGSslkSX8luyN8taQVcS9jTc9LOh9oKakH0BvonzhT0UyT1JW8sJPUC5iSNlKhXEp253NYRLwkaX3gzcSZiuYdYIikAcBXC096eBRIuqm+xyPi9IbKUnD9JfUGHqH279CMdJEKZY6kdlS/Tu+Ibxo0Od7I0kqGpFbAD4GxEfFmfqd4i4gYlDhaIUgqA04E9gFE9kb0tvCLQJX8DfnfgJ2Bz4B3gaMi4r2kwazRkHRxXefd+wCSvgZeAx4EPiJ7HaoSEX1T5CoaSe/WcToiYv0GD1NAkrYBbgY2J/t9ag/0yof8WhPhAsZKSj7/ZcOIuFNSe2DliKjrj0GTJmk1oJNf8KvlBV6vfGjCSkBZRMxOnatIJF0DXA58CQwEtgLOjIh7kgazRiG/a34ocDjZ0MwHgIci4rOkwazRyYdAb0RWBE+MiPmJI1kDcwFjJSO/87kd2QTabpI6Av+IiF0SRyuEulaQAryCVA2ShkbE91PnKCpJYyKiu6QfAQcBZwHPRcRWiaMlJ+nGiDhTUn/qmFsWEQcmiFVYktYGfgycDfw6Iu5OHKkwJDUHfgEsfC0aAvzVb9Izkg6u4/TnZKMvPmnoPJaG58BYKfkRsDXZ6i1ExEfe56SWthExS9JJZCtIXSzJPTC1DZZ0Dtmd4TkLT3rseZXm+ef9gPsiYsYiCx40ZQvfgP8haYpGIB8C9GOgB/AkMDJtosLpQ/Z/7c/58TH5uZOSJSqWE4GdgOfy492B4UA3SZe6GG4aXMBYKfk6IkLSwol9K6UOVDBeQWrpfpJ/PqXGuQA89jzTX9IEsiFkvfNhmvMSZyqEiBiZf34+dZaikvQ74ABgPHA/cF5EeJW/xW2/SK/ms5JeSZameCqBTSLiY6jaF6YPsAMwlOqbCVbCXMBYKXkwX4VslXzTxp+Q7ethmYUrSP3HK0jVLSLWS52hyCLiN5KuBmZFRIWkucD/pc5VBJLGUs+y5N4LBoALyVZp2yr/uDLvwRPZJHW3UaZCUteIeBuqFhfxMsHVuiwsXnKfAN3yHmEPs2siPAfGSkq+PHDVKlsRMThxJGtEJB1b1/mI6NfQWYooX+nvbKBzRJwsaUOyOWePJ46WnKR163vcK9m5jb4pSXsBd5IVewLWBU6IiOfq/cYmQtKfgc5kG34CHAJ8SLbZ5+MRsUeqbNZwXMCYNRGSOpEtPbkL2Z3iYcAZEfFh0mAFIunmGoctgL2AURHRK1GkQpH0ANl8hWMjYnNJLYEXIqJ74mjWSElaHZju5dxry/cxW7jK1oSI+Gop39JkKOu2OxjYNT81HVgrIk5Z8ndZqfEQMmv0JA2LiF0lzab2EI6FwxLaJIpWNHcC95ItYwpwdH6uR7JEBRMRp9U8ltQWj6euqWtEHC7pxwAR8aU8i7+WRV6HViCbjD3Hr0NVGw5eBcwALiP7v7U6UCbp2IgYmDJfapL2jIhn61hlq6skIuLhJMEKJp/r+jbZnJfDyPbreihtKmtoLmCs0YuIXfPPXnGsfu0j4s4ax3dJOjNZmsZhLrBh6hAF8nXe67JwoYyu1Ngp3BZ/HZJ0EPD/EsUpmj8B5wNtgWeBfSNiuKSNgfvI9hZqynYja5eedTwWQJMuYCR1A44gW8FuOtlqkfKQsabJBYyVjPzu3riFmw9KWhnYLCJeTJusMKZJOprsjQJU/xGw3CJ7eJQBm5LtGm6Zi8neZK4j6e9kwxGPT5qo4CLiX5J+kzpHQTSLiEEA+XK3wwEiYoI78iAiLs6/vHTRDZgleYERmAD8G+gZEW8BSDorbSRLxQWMlZI+wDY1jufWca4p+wnZHdAbyN6k/5fqZYMtU3MPjwXAe54jVC0iBksaBexINkTzjIiYljhWoSwy/KeMbHNdz+/IVNb4+stFHnMbVXuIxf9u/RPYNkGWIjmErAfmOUkDyZbiduXbRLmAsVKimhNBI6JSkn/HcxHxPuDdwOv3MvBl/rvTDdhG0sfeAbuWFsBnZH8/Ns3H5g9NnKlIag7/WQBMwktNL7SVpFlkbzpb5l+TH7dIF6sY8qF0mwFtFymE2+D2ISIeAR7J93g7CDgL6CCpD/DIwt49axq8CpmVDEkPA0PIel0AegN7RMRByUIViKS+ZHfMZ+bHqwLXRYR7YXKSRgLfA1Yl29n5ZWBuRByVNFhB5HvAHA6Mo/puekSEC2Oz70jS/5G9MT8QeKzGQ7OB+yPiv0mCFZik1cgWpjk8IvZMnccajgsYKxmS1gBuAvYkG47wDHBmRHySNFhBSBodEVsv7VxTJmlURGwj6TSgZURc4zaqJmkisKWXdF0ySdcAl5MNkRpItmHjmRFxT9Jg1mhI2ikiXkidw6zIylIHMFtWIuKTiDgiItaIiA4RcaSLl1rK8l4XoOrOlYfY1SZJOwFHAQPyc26jau+QLQtsS7ZPRMwCDiDbXK8b2QZ7Zt/UzyWtsvBA0qqS7kgZyKxo/IfZSoak9sBPgS7U+N32EKkq1wH/lfTP/PhQ4IqEeYroTOA8svHU4yStD3j362pzgTGSnqHG8skRcXq6SIWzsMDbD7gvImZ4hS37lrZcONQXICI+k+ReYLMaXMBYKXmUbInFp4GKxFkKJyL6SXqZbIidgIMj4vXEsQolIp4HngeQVAZM85vzWh6j9th8W1x/SRPIhpD1zm+szEucyRqXMkmrRsRn4N5ys7p4DoyVDEljIqJ76hxFJalzXefz1ckMkHQv8HOyAngk2YZ710fEtUmDFYSkbSNi5CLnekZE/1SZiigfqjkrIioktQLaRMTU1LmscZB0LFlPcK3e8oi4O10qs2JxAWMlQ9LlwH8j4onUWYpI0liq91poCawHTIyIzdKlKpaFRbCko8j2XPg1MDIitkwcrRDyPWCOi4ix+fGPySao75A2WbFI2pnFh7L2SxbIGh1JmwF7kPWWP+PecrPa3CVppeQM4HxJXwHzyV74IyLapI1VDBGxRc1jSdsAP0sUp6iaS2pOtpTpnyJiviTf5anWC/hnXuDtChwL7JM2UrFIuhvoCoyheihrAC5g7NuYQPV+S0jq7N5ys2ouYKxkRETr1Bkak4gYJWn71DkK5q9kGw++AgyVtC4wq97vaEIi4h1JRwD/Aj4gW3Fr0R3Vm7rtgE3Dwxvsf5Qv434x8DFZESyyItg9wWY5DyGzkpKPPd+QGrsWe5fwjKSzaxyWAdsA7SLiB4kiNQqSmkXEgtQ5Ulpk+CHAGsDn5CuReYhdNUn/AE6PiCmps1jjJOktYIeImJ46i1lRuQfGSoakk8iGkXUiG76xI/AC2apbBjV7qBaQ7XPyUKIshSSpA3Al0DEi9pW0KbATcHvaZMkdkDpAI7I68LqkEdReavrAdJGskfmA7AaBmS2Be2CsZOR3ibcHhucTsTcGfhcRhyeOZo2EpCeBO4HfRsRWkpoBoxedP9RUSdoRGBcRs/Pj1mTDpV5Mm6w4JO1W1/l8iW6zpZJ0O7AR2U2mmkXw9clCmRWMe2CslMyLiHmSkLRiREyQtFHqUKlJ6k/t4T+1+M5wLatHxL9cIyoAAA7dSURBVIOSzgOIiAWSvKdQtT5kQw8XmlPHuSbNhYotA+/nHyvkH2a2CBcwVko+lLQK2QTjwZI+Az5KnKkI/lDHuYUFjbcIr22OpHbk7ZP3OHgoRzXVnJweEZV5L1WTJ2k2dd8o8GqI9q1ExO9SZzArOv/hsZIRET/Kv7xE0nNkmxAOTBipKFYBOkXELQD52Pz2ZG+2fp0yWAGdTbbTfFdJ/yFrp15pIxXKO5JOJ+t1AegNvJMwT2F4FURbVvK/X4sVwxHh+ZxmOc+BsZIiqRzoQO0N5Jr02vn5G/EjIuKD/HgMsBewEnBnROyVMl9RSCojW/hhBNn4c5Ft9Dk/abACkbQGcBPZwhgBPEO2keUnSYOZlRBJ29Y4bAEcAiyIiF8limRWOO6BsZKxyNr5lflpr50PKywsXnLD8uU5p0taKVWoosmHQ10XETsB41LnKaK8UDkidQ6zUhYRIxc59R9JnltlVoMLGCslZwAbee38xaxa8yAiTq1x2L6BsxTdIEmHAA97I8Jqkn4VEddIupm6h7acniCWWUmStFqNwzJgW2DNRHHMCskFjJUSr51ftxcl/TQibq15UtLPyIZLWbWzyYbWLZA0D0/AXmh8/vnlpCnMmoaRZDcKRLZn17vAiUkTmRWM58BYyfDa+XXL5y38i6xNRuWntwVWBA6KiI9TZTMzMzP7ttwDY6XEa+fXIZ+3sLOkPYHN8tMDIuLZhLEKJS/yzgc2AF4FroqIWWlTFY+kbsA5QBdqL5Th1ZHMviNJV0bE+fnXPSJicOpMZkXlHhgza/IkDSQbtjEUOABoHRHHJw1VQJJeAf5C1lZVG3zWMenYzL4lSaMiYptFvzazxbkHxkrGEnac/5xs3P5fI2Jew6eyRmLNiPht/vVTkkbVe3XTtSAi+iz9MjMzs+XHBYyVknfIVtW6Lz8+nGxJ5W7ArcAxiXJZ8UnSqmSTZgHKax5HxIxkyQqgxqpI/SX1Bh6h9jyzJt0+ZsvIGpLOJnvdWfh1laY+n9OsJg8hs5IhaWhEfL+uc5LGRcRmS/pea9okTSLbO0h1PBwRsX7DJioWSe9SvSrSopp8+5gtC5Iuru/xiPhdQ2UxKzr3wFgpaS+pc0S8DyCpM7B6/tjX6WJZ0UVEl9QZCu7IiHghdQizUuYCxeybcwFjpeSXwDBJb5PdKV4P6J3vNt83aTIrNEn1TpaNiKY+J+YWwBOKzRpAvtpfH6BDRGwuaUvgwIi4PHE0s8LwEDIrKZJWBDYmK2AmeOK+fROSnsu/bAFsB7xC9ju0JfBiROyaKlsRSBodEVunzmHWFEh6HjiXbPGZrfNzr0XE5mmTmRWHe2CsZEhqRbaT+roR8VNJG0raKCIeT53Nii0i9gCQdD9wckSMzY83J9v3pKlbT9JjS3owIg5syDBmJa5VRIyQak05W5AqjFkRuYCxUnIn2f4UO+XHHwL/AFzA2De18cLiBSAiXpPUPWWggvgUuC51CLMmYpqkruTbAkjqBUxJG8msWFzAWCnpGhGHS/oxQER8qUVuYZktxXhJtwH3kL15OBoYnzZSIcyOiOdThzBrIk4B/gZsLGky8C7Za5GZ5VzAWCn5WlJLqu9adaXGXhVm38AJwC+AM/LjoWSTaZu6SakDmDUVEfEOsHe+AE1ZRMxOncmsaDyJ30qGpB7ABcCmwCBgF+D4iBiSMpc1LpJWADYiK4QnRsT8xJEKRdLOQBdq3ACLiH7JApmVGEkdgCuBjhGxr6RNgZ0i4vbE0cwKwwWMlYR8qFgnYC6wI9kKUsMjYlrSYNaoSNqdbMntSWS/Q+sAx0XE0ISxCkPS3UBXYAxQkZ+OiDg9XSqz0iLpSbI5nb+NiK0kNQNGR8QWiaOZFYYLGCsZkkZGxLapc1jjJWkk2aaNE/PjbsB9/r3KSBoPbBr+w2G23Eh6KSK2r7l8uaQxEeEFRcxyZakDmC1DwyVtnzqENWrNFxYvABHxBtA8YZ6ieQ1YM3UIsxI3R1I7qudz7gh8njaSWbG4B8ZKhqTXyeYuTALmkA0BiojYMmUuazwk3UH2puHu/NRRQLOIOCFdquLIN/zsDoygxgIZ3gfGbNmRtA1wM7A52U2D9kCviHg1aTCzAnEBYyVD0rp1nY+I9xo6izVOklYkW8J0V7ICeCjw54jwanaApN3qOu8lls2WDUllZPM4R5DdkBNeTMRsMS5grNGT1AL4ObABMBa4PSK8a7H9T7wKmZmlJOmFiNhp6VeaNV2eA2OloC+wHVnxsi/eMdz+R/kqZG8CfwL+DLwh6ftJQxWApGH559mSZtX4mC1pVup8ZiVmkKRDvBGz2ZK5B8YaPUljFy4vmS83OSIitkkcyxohr0JmZqlJmg2sBCwA5lE9n7NN0mBmBeIeGCsFVUN8PHTMviOvQlYPSSfWce6qFFnMSlVEtI6IsohYISLa5McuXsxqaLb0S8wKb6saw1gEtMyPfdfKvq2XJd1O7VXIRibMUzS9JM2LiL8DSPoz0CJxJrOSkq9CtqjPgfd8k84s4yFkZmY5r0JWP0ktgceAO8jmm82IiDPTpjIrLZKGA9uQzesE2AJ4BWgH/DwiBqXKZlYULmDMzKxeklarcdgaeBQYBlwEEBEzUuQyK0WS7gcui4hx+fGmwLnAZcDDEdE9ZT6zInABY2ZNnqSx5Lte16Wpb4Yq6V2y9tEinwGIiPUTRTMrOZLGLFqkLDxX12NmTZHnwJiZwQGpAxTc4cAHETEFQNJxwCHAJOCSdLHMStJESX2A+/Pjw8mWdF+RGovWmDVl7oExM6uDpNWB6eEXSSSNAvaOiBn5vjj3A6cB3YFNIqJX0oBmJSSfa9ab6rl4w8j2pZoHtIqILxLGMysEFzBm1uRJ2hG4CphBNs78bmB1sqXmj42IgQnjJSfplYjYKv/6FuDTiLgkP/aQFjMza1AeQmZmBn8CzgfaAs8C+0bEcEkbA/cBTbqAAcolNcuXcN0LOLnGY/47YrYMSHowIg5b0py8pj4Xz6wm/+ExM4NmC5cmlXRpRAwHiIgJktImK4b7gOclTQO+BP4NIGkDsv0pzOy7OyP/7Dl5ZkvhAsbMDCprfP3lIo81+XG2EXGFpGeAtYBBNeYFlZHNhTGz72jhIhkR8V7qLGZF5zkwZtbkSaoA5pBNmG0JzF34ENAiIpqnymZmTYOk2dS/nHubBoxjVmjugTGzJi8iylNnMLOmLSJaQzaMFZhKtpiIgKPINpA1s5x7YMzMzMwKQtKLEbHD0s6ZNWVlqQOYmZmZWZUKSUdJKpdUJukooCJ1KLMicQFjZmZmVhxHAocBH+cfh+bnzCznIWRmZmZmZtZouAfGzMzMrCAkdZP0jKTX8uMtJV2QOpdZkbiAMTMzMyuOW4HzgPkAEfEqcETSRGYF4wLGzMzMrDhaRcSIRc4tSJLErKBcwJiZmZkVxzRJXck3tZTUC5iSNpJZsXgSv5mZmVlBSFof+BuwM/AZ8C5wVES8lzSYWYG4gDEzMzMrGEkrAWURMTt1FrOi8RAyMzMzs8Qk7SDpFUlfSHoB6OzixaxuLmDMzMzM0rsFOAdoB1wP3Jg2jllxuYAxMzMzS68sIgZHxFcR8Q+gfepAZkXVLHUAMzMzM2MVSQcv6TgiHk6QyayQPInfzMzMLDFJd9bzcETETxosjFnBuYAxMzMzM7NGw3NgzMzMzApC0hmS2ihzm6RRkvZJncusSFzAmJmZmRXHTyJiFrAPsAZwAnBV2khmxeICxszMzKw4lH/eD7gzIl6pcc7McAFjZmZmViQjJQ0iK2CektQaqEycyaxQPInfzMzMrCAklQHdgXciYqakdsDaEfFq4mhmheEeGDMzM7PiCGBT4PT8eCWgRbo4ZsXjHhgzMzOzgpDUh2zI2J4RsYmkVYFBEbF94mhmhdEsdQAzMzMzq7JDRGwjaTRARHwmaYXUocyKxEPIzMzMzIpjvqRysqFkSGqPJ/Gb1eICxszMzKw4bgIeAdaQdAUwDPh92khmxeI5MGZmZmYFImljYC+y/V+eiYjxiSOZFYoLGDMzM7OCkHR3RByztHNmTZmHkJmZmZkVx2Y1D/L5MNsmymJWSC5gzMzMzBKTdJ6k2cCWkmZJmp0ffwI8mjieWaF4CJmZmZlZQUj6fUSclzqHWZG5gDEzMzMrCEllwJHAehFxmaR1gLUiYkTiaGaF4QLGzMzMrCAk9SHb92XPiNhE0qrAoIjYPnE0s8JoljqAmZmZmVXZISK2kTQaICI+k7RC6lBmReJJ/GZmZmbFMT9feSwAJLUn65Exs5wLGDMzM7PiuAl4BOgg6QpgGHBl2khmxeI5MGZmZmYFImljYK/88NmIGJ8yj1nReA6MmZmZWbG0AhYOI2uZOItZ4XgImZmZmVlBSLoI6AusBqwO3CnpgrSpzIrFQ8jMzMzMCkLSeGDriJiXH7cERkXEJmmTmRWHe2DMzMzMimMS0KLG8YrA22mimBWT58CYmZmZJSbpZrI5L18B4yQNzo97kK1EZmY5DyEzMzMzS0zScfU9HhF9GyqLWdG5gDEzMzMzs0bDQ8jMzMzMCkLShsDvgU2pMRcmItZPFsqsYDyJ38zMzKw47gT6AAuAPYB+wN1JE5kVjAsYMzMzs+JoGRHPkA3zfy8iLgH2TJzJrFA8hMzMzMysOOZJKgPelHQqMBlYI3Ems0LxJH4zMzOzgpC0PTAeWAW4DGgLXBMRw5MGMysQFzBmZmZmZtZoeAiZmZmZWWKSboyIMyX1J9vAspaIODBBLLNCcgFjZmZmlt7Clcb+kDSFWSPgIWRmZmZmBSKpPUBEfJo6i1kReRllMzMzs8SUuUTSNGAC8IakTyVdlDqbWdG4gDEzMzNL70xgF2D7iGgXEasCOwC7SDorbTSzYvEQMjMzM7PEJI0GekTEtEXOtwcGRcTWaZKZFY97YMzMzMzSa75o8QJV82CaJ8hjVlguYMzMzMzS+/p/fMysyfEQMjMzM7PEJFUAc+p6CGgREe6FMcu5gDEzMzMzs0bDQ8jMzMzMzKzRcAFjZmZmZmaNhgsYMzMzMzNrNFzAmJmZmZlZo+ECxszMzMzMGo3/D4X6+wONoe5rAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cb0244cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_corr = X.corr().abs()\n",
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "\n",
    "sns.heatmap(data_corr, mask=data_corr < 1, cbar=False)\n",
    "\n",
    "plt.savefig('coor.png' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由以上两步可知，特征之间相关性很小，而且方差没有特别小的，没有可删除的特征项"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将整个数据的80%做为训练集，剩下的20%做为测试集\n",
    "X_train_part, X_val, y_train_part, y_val = train_test_split(X, y, train_size = 0.8,test_size = 0.2,random_state = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(614, 8)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_part.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(154, 8)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_val.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cb02e2160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.Pregnancies.values, bins=30, kde=True)\n",
    "plt.xlabel('Pregnancies histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabbc91d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.Glucose.values, bins=30, kde=True)\n",
    "plt.xlabel('Glucose histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabd4d710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.BloodPressure.values, bins=30, kde=True)\n",
    "plt.xlabel('BloodPressure histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabcf2780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.SkinThickness.values, bins=30, kde=True)\n",
    "plt.xlabel('SkinThickness histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cab9707b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.Insulin.values, bins=30, kde=True)\n",
    "plt.xlabel('Insulin histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabcb0908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.BMI.values, bins=30, kde=True)\n",
    "plt.xlabel('BMI histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cb025b748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.DiabetesPedigreeFunction.values, bins=30, kde=True)\n",
    "plt.xlabel('DiabetesPedigreeFunction histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabc98208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(X_train_part.Age.values, bins=30, kde=True)\n",
    "plt.xlabel('Age histogram');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上面的直方图可以看到，有多个特征在0处有大量数据，分析是因为数据中有大量缺失值，而缺失值的处理都填0导致\n",
    "一个特征项中有大量的0值，猜测会对模型训练造成不好影响，本打算利用class_wight方法将0值的权重降低，但是搜索发现class_wight只能和于两类值的权重分配，而此题中特征项除0外的值是随机的，目前没找到好的权重设置方法，待请教老师"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Logistic 回归,并选择最佳的正则函数(L1/L2)及正则参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logloss of each fold is:  [0.53416695 0.49186719 0.51151935 0.55824994 0.52055322]\n",
      "cv logloss is: 0.5232713308285183\n"
     ]
    }
   ],
   "source": [
    "#default Logistic回归\n",
    "lr= LogisticRegression()\n",
    "loss = cross_val_score(lr, X_train_part, y_train_part, cv=5, scoring='neg_log_loss')\n",
    "print('logloss of each fold is: ',-loss)\n",
    "print('cv logloss is:', -loss.mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=10, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': [0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='True',\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#使用GridSearch 可以同时调l1 l2正则，且可同时调penalty和C,很方便\n",
    "lr_penalty= LogisticRegression()\n",
    "mPenalty = ['l1','l2']\n",
    "mC = [0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]\n",
    "para = dict(penalty = mPenalty, C = mC)\n",
    "grid= GridSearchCV(lr_penalty, para, cv=10, scoring='neg_log_loss',return_train_score='True')\n",
    "grid.fit(X_train_part,y_train_part)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.00118687, 0.00111654, 0.00084534, 0.0011085 , 0.00083661,\n",
       "        0.00106957, 0.00204167, 0.00114908, 0.00557239, 0.00124977,\n",
       "        0.00676191, 0.00135806, 0.00724025, 0.00146115, 0.00730636,\n",
       "        0.00140071, 0.00690753, 0.00139394]),\n",
       " 'mean_score_time': array([0.00074916, 0.00064731, 0.00058925, 0.00058367, 0.00058076,\n",
       "        0.00058534, 0.00058367, 0.00058591, 0.00058544, 0.00058968,\n",
       "        0.00058725, 0.00058732, 0.00062182, 0.00061183, 0.00065532,\n",
       "        0.00058708, 0.00058551, 0.00058491]),\n",
       " 'mean_test_score': array([-0.69314718, -0.69149856, -0.69314718, -0.68106593, -0.69314718,\n",
       "        -0.65792378, -0.62200153, -0.6053108 , -0.50100225, -0.52003087,\n",
       "        -0.49906746, -0.49825939, -0.49948723, -0.49921711, -0.49953987,\n",
       "        -0.49951031, -0.49954164, -0.49954226]),\n",
       " 'mean_train_score': array([-0.69314718, -0.6914951 , -0.69314718, -0.68103252, -0.69314718,\n",
       "        -0.65761942, -0.62090131, -0.6031703 , -0.48871365, -0.51226457,\n",
       "        -0.48227818, -0.48361945, -0.4821912 , -0.4822103 , -0.48219024,\n",
       "        -0.48219044, -0.48219023, -0.48219022]),\n",
       " 'param_C': masked_array(data=[0.0001, 0.0001, 0.001, 0.001, 0.01, 0.01, 0.1, 0.1, 1,\n",
       "                    1, 10, 10, 100, 100, 1000, 1000, 10000, 10000],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_penalty': masked_array(data=['l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1',\n",
       "                    'l2', 'l1', 'l2', 'l1', 'l2', 'l1', 'l2', 'l1', 'l2'],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'C': 0.0001, 'penalty': 'l1'},\n",
       "  {'C': 0.0001, 'penalty': 'l2'},\n",
       "  {'C': 0.001, 'penalty': 'l1'},\n",
       "  {'C': 0.001, 'penalty': 'l2'},\n",
       "  {'C': 0.01, 'penalty': 'l1'},\n",
       "  {'C': 0.01, 'penalty': 'l2'},\n",
       "  {'C': 0.1, 'penalty': 'l1'},\n",
       "  {'C': 0.1, 'penalty': 'l2'},\n",
       "  {'C': 1, 'penalty': 'l1'},\n",
       "  {'C': 1, 'penalty': 'l2'},\n",
       "  {'C': 10, 'penalty': 'l1'},\n",
       "  {'C': 10, 'penalty': 'l2'},\n",
       "  {'C': 100, 'penalty': 'l1'},\n",
       "  {'C': 100, 'penalty': 'l2'},\n",
       "  {'C': 1000, 'penalty': 'l1'},\n",
       "  {'C': 1000, 'penalty': 'l2'},\n",
       "  {'C': 10000, 'penalty': 'l1'},\n",
       "  {'C': 10000, 'penalty': 'l2'}],\n",
       " 'rank_test_score': array([16, 15, 16, 14, 16, 13, 12, 11,  9, 10,  2,  1,  4,  3,  6,  5,  7,\n",
       "         8], dtype=int32),\n",
       " 'split0_test_score': array([-0.69314718, -0.69151438, -0.69314718, -0.68114647, -0.69314718,\n",
       "        -0.65833027, -0.62638452, -0.61268861, -0.52476917, -0.53862706,\n",
       "        -0.51662576, -0.51596123, -0.51563436, -0.51545667, -0.51554887,\n",
       "        -0.5155318 , -0.5155379 , -0.51554117]),\n",
       " 'split0_train_score': array([-0.69314718, -0.69149669, -0.69314718, -0.6810469 , -0.69314718,\n",
       "        -0.65749487, -0.61853083, -0.6016781 , -0.48596865, -0.50997135,\n",
       "        -0.48034835, -0.48164461, -0.48026207, -0.48028028, -0.48026109,\n",
       "        -0.48026128, -0.48026108, -0.48026107]),\n",
       " 'split1_test_score': array([-0.69314718, -0.69145118, -0.69314718, -0.68067307, -0.69314718,\n",
       "        -0.65657338, -0.62291341, -0.60507104, -0.49953424, -0.52171515,\n",
       "        -0.49254708, -0.49404178, -0.49217254, -0.49223463, -0.49214185,\n",
       "        -0.49214785, -0.49213962, -0.49214055]),\n",
       " 'split1_train_score': array([-0.69314718, -0.69150869, -0.69314718, -0.68112637, -0.69314718,\n",
       "        -0.65778933, -0.61762094, -0.60288496, -0.48859559, -0.51176463,\n",
       "        -0.48224142, -0.4835322 , -0.48215485, -0.48217302, -0.48215393,\n",
       "        -0.48215411, -0.48215391, -0.48215391]),\n",
       " 'split2_test_score': array([-0.69314718, -0.69142749, -0.69314718, -0.68043968, -0.69314718,\n",
       "        -0.65447815, -0.61668966, -0.59047107, -0.45158133, -0.48225283,\n",
       "        -0.43377215, -0.4391997 , -0.4323833 , -0.43294872, -0.43224765,\n",
       "        -0.43230003, -0.4322348 , -0.43223498]),\n",
       " 'split2_train_score': array([-0.69314718, -0.69151491, -0.69314718, -0.68118708, -0.69314718,\n",
       "        -0.65831389, -0.62495936, -0.60593591, -0.49566308, -0.51751388,\n",
       "        -0.48928377, -0.49047098, -0.48920031, -0.48921684, -0.4891994 ,\n",
       "        -0.48919957, -0.48919939, -0.48919939]),\n",
       " 'split3_test_score': array([-0.69314718, -0.69152318, -0.69314718, -0.68125122, -0.69314718,\n",
       "        -0.65740118, -0.61808967, -0.59342841, -0.4730351 , -0.49493073,\n",
       "        -0.47994517, -0.47783268, -0.48165715, -0.48119218, -0.48184084,\n",
       "        -0.4817932 , -0.48185762, -0.481857  ]),\n",
       " 'split3_train_score': array([-0.69314718, -0.69148804, -0.69314718, -0.68099262, -0.69314718,\n",
       "        -0.65790218, -0.62588434, -0.60547009, -0.490843  , -0.51479456,\n",
       "        -0.48385619, -0.48526582, -0.48376599, -0.48378611, -0.48376494,\n",
       "        -0.48376515, -0.48376493, -0.48376493]),\n",
       " 'split4_test_score': array([-0.69314718, -0.69144189, -0.69314718, -0.68065826, -0.69314718,\n",
       "        -0.65812836, -0.62363765, -0.6164775 , -0.5278279 , -0.54002046,\n",
       "        -0.52077993, -0.51906037, -0.52048859, -0.52012854, -0.52047035,\n",
       "        -0.52043473, -0.5204651 , -0.52046821]),\n",
       " 'split4_train_score': array([-0.69314718, -0.69150801, -0.69314718, -0.68110898, -0.69314718,\n",
       "        -0.65739075, -0.61876645, -0.60125569, -0.48631868, -0.51003546,\n",
       "        -0.47999154, -0.48134194, -0.4799036 , -0.47992288, -0.47990265,\n",
       "        -0.47990285, -0.47990264, -0.47990264]),\n",
       " 'split5_test_score': array([-0.69314718, -0.69152096, -0.69314718, -0.68126873, -0.69314718,\n",
       "        -0.65813014, -0.62011241, -0.59592384, -0.43844985, -0.48038416,\n",
       "        -0.4384421 , -0.44098462, -0.43955469, -0.43961247, -0.43968145,\n",
       "        -0.43968379, -0.43969384, -0.43969395]),\n",
       " 'split5_train_score': array([-0.69314718, -0.691488  , -0.69314718, -0.68097907, -0.69314718,\n",
       "        -0.65769767, -0.62321029, -0.605271  , -0.49638596, -0.51812116,\n",
       "        -0.48901819, -0.4903337 , -0.48892704, -0.48894585, -0.48892606,\n",
       "        -0.48892625, -0.48892604, -0.48892604]),\n",
       " 'split6_test_score': array([-0.69314718, -0.69149732, -0.69314718, -0.68100037, -0.69314718,\n",
       "        -0.65647261, -0.6215101 , -0.59576339, -0.48122922, -0.50191608,\n",
       "        -0.48342044, -0.48236539, -0.48444351, -0.48412424, -0.48455496,\n",
       "        -0.48452378, -0.48456534, -0.48456489]),\n",
       " 'split6_train_score': array([-0.69314718, -0.69149396, -0.69314718, -0.681047  , -0.69314718,\n",
       "        -0.65795932, -0.62170071, -0.60481086, -0.49010974, -0.51395862,\n",
       "        -0.48344621, -0.4848135 , -0.48335721, -0.48337691, -0.48335624,\n",
       "        -0.48335644, -0.48335623, -0.48335622]),\n",
       " 'split7_test_score': array([-0.69314718, -0.69151466, -0.69314718, -0.68128079, -0.69314718,\n",
       "        -0.66056691, -0.6300171 , -0.62586693, -0.65650902, -0.61620038,\n",
       "        -0.69258423, -0.67281161, -0.69814841, -0.69544995, -0.69872367,\n",
       "        -0.69845745, -0.69875686, -0.69876846]),\n",
       " 'split7_train_score': array([-0.69314718, -0.69148978, -0.69314718, -0.680968  , -0.69314718,\n",
       "        -0.65699835, -0.61193771, -0.59887048, -0.46965089, -0.49796608,\n",
       "        -0.46286772, -0.46456387, -0.46278026, -0.46280512, -0.46277929,\n",
       "        -0.46277955, -0.46277928, -0.46277927]),\n",
       " 'split8_test_score': array([-0.69314718, -0.69152503, -0.69314718, -0.68128306, -0.69314718,\n",
       "        -0.65847374, -0.61923385, -0.60164409, -0.43759916, -0.48559648,\n",
       "        -0.41365985, -0.42292417, -0.41110441, -0.41211184, -0.41085658,\n",
       "        -0.41094058, -0.41082611, -0.41082247]),\n",
       " 'split8_train_score': array([-0.69314718, -0.69148704, -0.69314718, -0.68097766, -0.69314718,\n",
       "        -0.65756648, -0.62568085, -0.60422715, -0.49758536, -0.51853848,\n",
       "        -0.49192916, -0.49304469, -0.49184768, -0.4918632 , -0.4918468 ,\n",
       "        -0.49184695, -0.49184678, -0.49184678]),\n",
       " 'split9_test_score': array([-0.69314718, -0.69157092, -0.69314718, -0.68167176, -0.69314718,\n",
       "        -0.66074834, -0.62135531, -0.61577844, -0.51954246, -0.53864738,\n",
       "        -0.51949952, -0.51786926, -0.51997586, -0.51958024, -0.520032  ,\n",
       "        -0.51998705, -0.52003951, -0.52003107]),\n",
       " 'split9_train_score': array([-0.69314718, -0.6914759 , -0.69314718, -0.68089152, -0.69314718,\n",
       "        -0.65708135, -0.62072166, -0.60129881, -0.4860156 , -0.50998145,\n",
       "        -0.47979928, -0.48118318, -0.47971297, -0.47973274, -0.47971201,\n",
       "        -0.47971222, -0.479712  , -0.479712  ]),\n",
       " 'std_fit_time': array([4.27671104e-04, 9.51655426e-05, 1.05854627e-05, 2.56350867e-05,\n",
       "        2.06201060e-06, 1.60452161e-05, 5.92981277e-05, 4.96406949e-05,\n",
       "        1.69530533e-04, 6.61279621e-06, 2.69564300e-04, 5.21154274e-05,\n",
       "        3.51684567e-04, 1.67169045e-04, 4.49767123e-04, 9.31786660e-06,\n",
       "        1.87042743e-04, 4.46193221e-06]),\n",
       " 'std_score_time': array([2.50912098e-04, 7.56967537e-05, 1.49886424e-05, 2.53767431e-06,\n",
       "        3.51123470e-06, 5.89954718e-06, 7.14496368e-06, 6.30638549e-06,\n",
       "        3.82251237e-06, 5.14570043e-06, 5.78375169e-06, 8.33524446e-06,\n",
       "        7.82055425e-05, 3.82192939e-05, 9.97286535e-05, 3.05361989e-06,\n",
       "        2.71378580e-06, 9.53972293e-07]),\n",
       " 'std_test_score': array([6.12698543e-17, 4.25111213e-05, 6.12698543e-17, 3.54994630e-04,\n",
       "        6.12698543e-17, 1.77803154e-03, 3.77552932e-03, 1.12363225e-02,\n",
       "        6.09720156e-02, 3.92682910e-02, 7.36595029e-02, 6.67131632e-02,\n",
       "        7.53675683e-02, 7.44806431e-02, 7.55422715e-02, 7.54569458e-02,\n",
       "        7.55539481e-02, 7.55573285e-02]),\n",
       " 'std_train_score': array([0.00000000e+00, 1.14442552e-05, 0.00000000e+00, 8.39408257e-05,\n",
       "        0.00000000e+00, 3.81917230e-04, 4.14039758e-03, 2.21638612e-03,\n",
       "        7.59145709e-03, 5.74999844e-03, 7.63784611e-03, 7.50427397e-03,\n",
       "        7.63851233e-03, 7.63635980e-03, 7.63852447e-03, 7.63849936e-03,\n",
       "        7.63852280e-03, 7.63852413e-03])}"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.4982593863044273\n",
      "{'C': 10, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "#显示最佳参数\n",
    "print(-grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "0.4982593863044273比0.5232713308285183小一些，做交叉验证可以将损失变小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabdeb2b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化\n",
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid.cv_results_[ 'std_train_score' ]\n",
    "# plot results\n",
    "n_Cs = len(mC)\n",
    "number_penaltys = len(mPenalty)\n",
    "test_scores = np.array(test_means).reshape(n_Cs,number_penaltys)\n",
    "train_scores = np.array(train_means).reshape(n_Cs,number_penaltys)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_penaltys)\n",
    "train_stds = np.array(train_stds).reshape(n_Cs,number_penaltys)\n",
    "\n",
    "x_axis = np.log10(mC)\n",
    "for i, value in enumerate(mPenalty):\n",
    "    pyplot.errorbar(x_axis, test_scores[:,i], yerr=test_stds[:,i] ,label = mPenalty[i] +' Test')\n",
    "    pyplot.errorbar(x_axis, train_scores[:,i], yerr=train_stds[:,i] ,label = mPenalty[i] +' Train')\n",
    "    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'neg-logloss' )\n",
    "pyplot.savefig('LogisticGridSearchCV_C.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "线性 SVM,并选择最佳正则参数,比较与 Logistic 回归的性能,简单说明原因"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification report for classifier LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True,\n",
      "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
      "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
      "     verbose=0):\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.84      0.93      0.88       107\n",
      "          1       0.78      0.60      0.67        47\n",
      "\n",
      "avg / total       0.82      0.82      0.82       154\n",
      "\n",
      "\n",
      "Confusion matrix:\n",
      "[[99  8]\n",
      " [19 28]]\n"
     ]
    }
   ],
   "source": [
    "#缺省的SVC\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import confusion_matrix\n",
    "SVC1 = LinearSVC().fit(X_train_part, y_train_part)\n",
    "y_predict = SVC1.predict(X_val)\n",
    "\n",
    "print(\"Classification report for classifier %s:\\n%s\\n\"\n",
    "      % (SVC1, classification_report(y_val, y_predict)))\n",
    "print(\"Confusion matrix:\\n%s\" % confusion_matrix(y_val, y_predict))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "缺省的SVC的正确率82%，比较理想"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "#线性SVM正则参数调优\n",
    "def fit_grid_point_Linear(C, X_train, y_train, X_val, y_val):\n",
    "    # 在训练集是那个利用SVC训练\n",
    "    SVC3 =  LinearSVC( C = C)\n",
    "    SVC3 = SVC3.fit(X_train, y_train)\n",
    "    # 在校验集上返回accuracy\n",
    "    accuracy = SVC3.score(X_val, y_val)\n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "No handles with labels found to put in legend.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.7077922077922078\n",
      "accuracy: 0.8051948051948052\n",
      "accuracy: 0.8246753246753247\n",
      "accuracy: 0.8246753246753247\n",
      "accuracy: 0.7857142857142857\n",
      "accuracy: 0.7467532467532467\n",
      "accuracy: 0.7012987012987013\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabd22390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#需要调优的参数\n",
    "mC3 = np.logspace(-4, 4, 9)# logspace(a,b,N)把10的a次方到10的b次方区间分成N份  \n",
    "\n",
    "accuracy_s = []\n",
    "for i, Ccc in enumerate(mC3):\n",
    "    tmp = fit_grid_point_Linear(Ccc, X_train_part, y_train_part, X_val, y_val)\n",
    "    accuracy_s.append(tmp)\n",
    "#可视化\n",
    "x_axis = np.log10(mC3)\n",
    "pyplot.plot(x_axis, np.array(accuracy_s), 'b-')\n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'accuracy' )\n",
    "pyplot.savefig('SVM.png' )\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此处参考了老师的做法，写一个函数将所有参数C得到的accuracy打出来\n",
    "最佳的log(C)为0,1,C为1，10\n",
    "但是此处每运算一次得到的结果都不相同，不知为何。待老师讲解\n",
    "\n",
    "对于数据量较小的样本，Logistic 回归与线性 SVM在性能上并没有太大差异。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "RBF 核的 SVM,并选择最佳的超参数(正则参数、RBF 核函数宽度)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fit_grid_point_RBF(C, gamma, X_train, y_train, X_val, y_val):\n",
    "    # 在训练集是那个利用SVC训练\n",
    "    SVC3 =  SVC( C = C, kernel='rbf', gamma = gamma)\n",
    "    SVC3 = SVC3.fit(X_train, y_train)\n",
    "    # 在校验集上返回accuracy\n",
    "    accuracy = SVC3.score(X_val, y_val)\n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.7792207792207793\n",
      "accuracy: 0.7207792207792207\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.8051948051948052\n",
      "accuracy: 0.8181818181818182\n",
      "accuracy: 0.7727272727272727\n",
      "accuracy: 0.6948051948051948\n",
      "accuracy: 0.8051948051948052\n",
      "accuracy: 0.8181818181818182\n",
      "accuracy: 0.7922077922077922\n",
      "accuracy: 0.7402597402597403\n",
      "accuracy: 0.8051948051948052\n",
      "accuracy: 0.8181818181818182\n",
      "accuracy: 0.8116883116883117\n",
      "accuracy: 0.7727272727272727\n",
      "accuracy: 0.7337662337662337\n"
     ]
    }
   ],
   "source": [
    "#需要调优的参数\n",
    "mC4 = np.logspace(-2, 2, 5)# logspace(a,b,N)把10的a次方到10的b次方区间分成N份 \n",
    "mGamma = np.logspace(-3, 1, 5)  \n",
    "\n",
    "accuracy_s = []\n",
    "for i, Cc in enumerate(mC4):\n",
    "    for j, gamma in enumerate(mGamma):\n",
    "        tmp = fit_grid_point_RBF(Cc, gamma, X_train_part, y_train_part, X_val, y_val)\n",
    "        accuracy_s.append(tmp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cabadc9e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "accuracy_s1 =np.array(accuracy_s).reshape(len(mC4),len(mGamma))\n",
    "x_axis = np.log10(mC4)\n",
    "for j, gamma in enumerate(mGamma):\n",
    "    pyplot.plot(x_axis, np.array(accuracy_s1[:,j]), label = 'log(gamma)' + str(np.log10(gamma)))\n",
    "\n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'accuracy' )\n",
    "pyplot.savefig('RBF_SVM.png' )\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从以上两步可知，最佳正则参数有三个：C=1 gamma=1;C=10,gamma=0.1;C=100,gamma=0.01\n",
    "对于这个结果很迷惑"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.00162172, 0.00139775, 0.00114188, 0.00132711, 0.00343471,\n",
       "        0.02605324, 0.02869473, 0.03018265, 0.02984567]),\n",
       " 'mean_score_time': array([0.00034988, 0.00027192, 0.00024254, 0.00022554, 0.00022359,\n",
       "        0.00022397, 0.00022528, 0.00028272, 0.0002373 ]),\n",
       " 'mean_test_score': array([0.65104167, 0.65104167, 0.66666667, 0.76171875, 0.77213542,\n",
       "        0.7734375 , 0.77734375, 0.70442708, 0.67447917]),\n",
       " 'mean_train_score': array([0.65104188, 0.65104188, 0.66898125, 0.77112273, 0.77879006,\n",
       "        0.78009231, 0.77560836, 0.70947191, 0.69679801]),\n",
       " 'param_C': masked_array(data=[0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'C': 0.0001},\n",
       "  {'C': 0.001},\n",
       "  {'C': 0.01},\n",
       "  {'C': 0.1},\n",
       "  {'C': 1},\n",
       "  {'C': 10},\n",
       "  {'C': 100},\n",
       "  {'C': 1000},\n",
       "  {'C': 10000}],\n",
       " 'rank_test_score': array([8, 8, 7, 4, 3, 2, 1, 5, 6], dtype=int32),\n",
       " 'split0_test_score': array([0.64935065, 0.64935065, 0.67532468, 0.74025974, 0.74025974,\n",
       "        0.72727273, 0.72727273, 0.7012987 , 0.72727273]),\n",
       " 'split0_train_score': array([0.6512301 , 0.6512301 , 0.66714906, 0.77858177, 0.78871201,\n",
       "        0.79160637, 0.78726483, 0.7698987 , 0.76410999]),\n",
       " 'split1_test_score': array([0.64935065, 0.64935065, 0.66233766, 0.75324675, 0.76623377,\n",
       "        0.76623377, 0.81818182, 0.76623377, 0.76623377]),\n",
       " 'split1_train_score': array([0.6512301 , 0.6512301 , 0.67149059, 0.77134588, 0.77568741,\n",
       "        0.77568741, 0.76845152, 0.77279305, 0.74819103]),\n",
       " 'split2_test_score': array([0.64935065, 0.64935065, 0.68831169, 0.76623377, 0.79220779,\n",
       "        0.80519481, 0.77922078, 0.76623377, 0.77922078]),\n",
       " 'split2_train_score': array([0.6512301 , 0.6512301 , 0.66136035, 0.77568741, 0.77424023,\n",
       "        0.77568741, 0.77568741, 0.72069465, 0.74674385]),\n",
       " 'split3_test_score': array([0.64935065, 0.64935065, 0.68831169, 0.7012987 , 0.71428571,\n",
       "        0.71428571, 0.74025974, 0.68831169, 0.66233766]),\n",
       " 'split3_train_score': array([0.6512301 , 0.6512301 , 0.67149059, 0.77568741, 0.78002894,\n",
       "        0.78002894, 0.77134588, 0.69030391, 0.74963821]),\n",
       " 'split4_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.71428571, 0.74025974,\n",
       "        0.75324675, 0.75324675, 0.71428571, 0.64935065]),\n",
       " 'split4_train_score': array([0.6512301 , 0.6512301 , 0.67293777, 0.77424023, 0.7829233 ,\n",
       "        0.78147612, 0.78002894, 0.7366136 , 0.72069465]),\n",
       " 'split5_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.79220779, 0.77922078,\n",
       "        0.76623377, 0.77922078, 0.74025974, 0.67532468]),\n",
       " 'split5_train_score': array([0.6512301 , 0.6512301 , 0.66714906, 0.76555716, 0.77858177,\n",
       "        0.7829233 , 0.7829233 , 0.72069465, 0.67583213]),\n",
       " 'split6_test_score': array([0.64935065, 0.64935065, 0.67532468, 0.77922078, 0.80519481,\n",
       "        0.80519481, 0.76623377, 0.76623377, 0.75324675]),\n",
       " 'split6_train_score': array([0.6512301 , 0.6512301 , 0.67293777, 0.76555716, 0.77424023,\n",
       "        0.77568741, 0.77858177, 0.74963821, 0.77424023]),\n",
       " 'split7_test_score': array([0.64935065, 0.64935065, 0.66233766, 0.79220779, 0.80519481,\n",
       "        0.80519481, 0.83116883, 0.37662338, 0.66233766]),\n",
       " 'split7_train_score': array([0.6512301 , 0.6512301 , 0.66570188, 0.76266281, 0.77279305,\n",
       "        0.77568741, 0.76555716, 0.38494935, 0.66280753]),\n",
       " 'split8_test_score': array([0.65789474, 0.65789474, 0.65789474, 0.76315789, 0.75      ,\n",
       "        0.76315789, 0.76315789, 0.73684211, 0.71052632]),\n",
       " 'split8_train_score': array([0.65028902, 0.65028902, 0.66907514, 0.77601156, 0.78901734,\n",
       "        0.78901734, 0.77312139, 0.78034682, 0.71965318]),\n",
       " 'split9_test_score': array([0.65789474, 0.65789474, 0.65789474, 0.81578947, 0.82894737,\n",
       "        0.82894737, 0.81578947, 0.78947368, 0.35526316]),\n",
       " 'split9_train_score': array([0.65028902, 0.65028902, 0.67052023, 0.76589595, 0.7716763 ,\n",
       "        0.77312139, 0.77312139, 0.76878613, 0.40606936]),\n",
       " 'std_fit_time': array([3.05142308e-04, 4.26434889e-04, 9.03660639e-05, 1.53398039e-05,\n",
       "        1.32070629e-04, 1.75547891e-03, 1.59573154e-04, 1.01894472e-03,\n",
       "        4.08570411e-04]),\n",
       " 'std_score_time': array([6.90928034e-05, 8.06115922e-05, 2.82336425e-05, 7.96403709e-06,\n",
       "        8.90805325e-07, 9.78388049e-07, 2.11494885e-06, 6.77302494e-05,\n",
       "        3.68448974e-05]),\n",
       " 'std_test_score': array([0.00340421, 0.00340421, 0.01371454, 0.03396512, 0.03428163,\n",
       "        0.03513523, 0.03293028, 0.11361227, 0.11467685]),\n",
       " 'std_train_score': array([0.00037643, 0.00037643, 0.00349035, 0.00540203, 0.00599418,\n",
       "        0.00590228, 0.00632895, 0.11157356, 0.10279474])}"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#再用交叉验证的方法调试一下看看\n",
    "mSVC =  LinearSVC()\n",
    "mC = [0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]\n",
    "para = dict(C = mC)\n",
    "mgrid= GridSearchCV(mSVC, para, cv=10, return_train_score='True')\n",
    "mgrid.fit(X,y)\n",
    "mgrid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.77734375\n",
      "{'C': 100}\n"
     ]
    }
   ],
   "source": [
    "#显示最佳参数\n",
    "print(mgrid.best_score_)\n",
    "print(mgrid.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.01300151, 0.01275046, 0.01274769, 0.01280129, 0.01299365,\n",
       "        0.01271689, 0.01270771, 0.01275034, 0.01294963, 0.01306894,\n",
       "        0.01268713, 0.01278584, 0.01296461, 0.01303518, 0.01347277,\n",
       "        0.0127305 , 0.01302552, 0.013042  , 0.013061  , 0.01359622,\n",
       "        0.01301312, 0.01310647, 0.01270947, 0.01149659, 0.01332068,\n",
       "        0.0130645 , 0.01272793, 0.01147273, 0.01269999, 0.01813269,\n",
       "        0.01271377, 0.01166651, 0.01289506, 0.02474532, 0.03398623,\n",
       "        0.01156325, 0.01354904, 0.02900231, 0.1232971 , 0.03606253,\n",
       "        0.01394718, 0.02765527, 0.14745438, 0.97071657, 0.03610864]),\n",
       " 'mean_score_time': array([0.00135539, 0.00131817, 0.00131185, 0.0013159 , 0.00134466,\n",
       "        0.00130746, 0.00131557, 0.00131366, 0.00132239, 0.00132689,\n",
       "        0.00130608, 0.00131202, 0.00131617, 0.00132217, 0.00135221,\n",
       "        0.0013067 , 0.00131226, 0.00132005, 0.001319  , 0.00135245,\n",
       "        0.00130763, 0.00131881, 0.00128858, 0.00111439, 0.00121636,\n",
       "        0.00131636, 0.00128298, 0.00109787, 0.00104675, 0.00114744,\n",
       "        0.00127118, 0.00110097, 0.00105989, 0.00102522, 0.00107248,\n",
       "        0.00110657, 0.00105219, 0.00102961, 0.0010282 , 0.00104532,\n",
       "        0.00104926, 0.00104139, 0.00100853, 0.000984  , 0.00104308]),\n",
       " 'mean_test_score': array([0.65104167, 0.65104167, 0.65104167, 0.65104167, 0.65104167,\n",
       "        0.65104167, 0.65104167, 0.65104167, 0.65104167, 0.65104167,\n",
       "        0.65104167, 0.65104167, 0.65104167, 0.65104167, 0.65104167,\n",
       "        0.65104167, 0.65104167, 0.65104167, 0.74609375, 0.69270833,\n",
       "        0.65104167, 0.65104167, 0.76041667, 0.77473958, 0.76692708,\n",
       "        0.65104167, 0.75911458, 0.77083333, 0.77083333, 0.73046875,\n",
       "        0.75911458, 0.77213542, 0.77213542, 0.75520833, 0.6875    ,\n",
       "        0.77213542, 0.77473958, 0.75651042, 0.74739583, 0.68359375,\n",
       "        0.77213542, 0.77083333, 0.76171875, 0.70442708, 0.68359375]),\n",
       " 'mean_train_score': array([0.65104188, 0.65104188, 0.65104188, 0.65104188, 0.65104188,\n",
       "        0.65104188, 0.65104188, 0.65104188, 0.65104188, 0.65104188,\n",
       "        0.65104188, 0.65104188, 0.65104188, 0.65104188, 0.65104188,\n",
       "        0.65104188, 0.65104188, 0.65104188, 0.75462951, 0.71556846,\n",
       "        0.65104188, 0.65104188, 0.7672164 , 0.79108731, 0.86458366,\n",
       "        0.65104188, 0.76822921, 0.78009231, 0.80743603, 0.94328735,\n",
       "        0.76765055, 0.77676443, 0.78790393, 0.83521473, 0.99522599,\n",
       "        0.7764752 , 0.78125131, 0.79933413, 0.88049719, 1.        ,\n",
       "        0.77922505, 0.78775963, 0.81553834, 0.9299775 , 1.        ]),\n",
       " 'param_C': masked_array(data=[0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.001, 0.001,\n",
       "                    0.001, 0.001, 0.001, 0.01, 0.01, 0.01, 0.01, 0.01, 0.1,\n",
       "                    0.1, 0.1, 0.1, 0.1, 1, 1, 1, 1, 1, 10, 10, 10, 10, 10,\n",
       "                    100, 100, 100, 100, 100, 1000, 1000, 1000, 1000, 1000,\n",
       "                    10000, 10000, 10000, 10000, 10000],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_gamma': masked_array(data=[0.001, 0.01, 0.1, 1.0, 10.0, 0.001, 0.01, 0.1, 1.0,\n",
       "                    10.0, 0.001, 0.01, 0.1, 1.0, 10.0, 0.001, 0.01, 0.1,\n",
       "                    1.0, 10.0, 0.001, 0.01, 0.1, 1.0, 10.0, 0.001, 0.01,\n",
       "                    0.1, 1.0, 10.0, 0.001, 0.01, 0.1, 1.0, 10.0, 0.001,\n",
       "                    0.01, 0.1, 1.0, 10.0, 0.001, 0.01, 0.1, 1.0, 10.0],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'C': 0.0001, 'gamma': 0.001},\n",
       "  {'C': 0.0001, 'gamma': 0.01},\n",
       "  {'C': 0.0001, 'gamma': 0.1},\n",
       "  {'C': 0.0001, 'gamma': 1.0},\n",
       "  {'C': 0.0001, 'gamma': 10.0},\n",
       "  {'C': 0.001, 'gamma': 0.001},\n",
       "  {'C': 0.001, 'gamma': 0.01},\n",
       "  {'C': 0.001, 'gamma': 0.1},\n",
       "  {'C': 0.001, 'gamma': 1.0},\n",
       "  {'C': 0.001, 'gamma': 10.0},\n",
       "  {'C': 0.01, 'gamma': 0.001},\n",
       "  {'C': 0.01, 'gamma': 0.01},\n",
       "  {'C': 0.01, 'gamma': 0.1},\n",
       "  {'C': 0.01, 'gamma': 1.0},\n",
       "  {'C': 0.01, 'gamma': 10.0},\n",
       "  {'C': 0.1, 'gamma': 0.001},\n",
       "  {'C': 0.1, 'gamma': 0.01},\n",
       "  {'C': 0.1, 'gamma': 0.1},\n",
       "  {'C': 0.1, 'gamma': 1.0},\n",
       "  {'C': 0.1, 'gamma': 10.0},\n",
       "  {'C': 1, 'gamma': 0.001},\n",
       "  {'C': 1, 'gamma': 0.01},\n",
       "  {'C': 1, 'gamma': 0.1},\n",
       "  {'C': 1, 'gamma': 1.0},\n",
       "  {'C': 1, 'gamma': 10.0},\n",
       "  {'C': 10, 'gamma': 0.001},\n",
       "  {'C': 10, 'gamma': 0.01},\n",
       "  {'C': 10, 'gamma': 0.1},\n",
       "  {'C': 10, 'gamma': 1.0},\n",
       "  {'C': 10, 'gamma': 10.0},\n",
       "  {'C': 100, 'gamma': 0.001},\n",
       "  {'C': 100, 'gamma': 0.01},\n",
       "  {'C': 100, 'gamma': 0.1},\n",
       "  {'C': 100, 'gamma': 1.0},\n",
       "  {'C': 100, 'gamma': 10.0},\n",
       "  {'C': 1000, 'gamma': 0.001},\n",
       "  {'C': 1000, 'gamma': 0.01},\n",
       "  {'C': 1000, 'gamma': 0.1},\n",
       "  {'C': 1000, 'gamma': 1.0},\n",
       "  {'C': 1000, 'gamma': 10.0},\n",
       "  {'C': 10000, 'gamma': 0.001},\n",
       "  {'C': 10000, 'gamma': 0.01},\n",
       "  {'C': 10000, 'gamma': 0.1},\n",
       "  {'C': 10000, 'gamma': 1.0},\n",
       "  {'C': 10000, 'gamma': 10.0}],\n",
       " 'rank_test_score': array([25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\n",
       "        25, 18, 21, 25, 25, 12,  1, 10, 25, 13,  7,  7, 19, 13,  3,  3, 16,\n",
       "        22,  3,  1, 15, 17, 23,  3,  7, 11, 20, 23], dtype=int32),\n",
       " 'split0_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.77922078, 0.71428571,\n",
       "        0.64935065, 0.64935065, 0.74025974, 0.72727273, 0.68831169,\n",
       "        0.64935065, 0.74025974, 0.72727273, 0.71428571, 0.66233766,\n",
       "        0.74025974, 0.72727273, 0.72727273, 0.72727273, 0.67532468,\n",
       "        0.72727273, 0.71428571, 0.7012987 , 0.68831169, 0.66233766,\n",
       "        0.71428571, 0.72727273, 0.68831169, 0.68831169, 0.66233766]),\n",
       " 'split0_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.75976845, 0.72214182,\n",
       "        0.6512301 , 0.6512301 , 0.76555716, 0.80173661, 0.87409551,\n",
       "        0.6512301 , 0.76845152, 0.78871201, 0.81476122, 0.94211288,\n",
       "        0.76845152, 0.78147612, 0.79450072, 0.83791606, 0.99276411,\n",
       "        0.78147612, 0.78726483, 0.81476122, 0.87988423, 1.        ,\n",
       "        0.78437048, 0.7959479 , 0.82489146, 0.93777135, 1.        ]),\n",
       " 'split1_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.76623377, 0.7012987 ,\n",
       "        0.64935065, 0.64935065, 0.76623377, 0.77922078, 0.83116883,\n",
       "        0.64935065, 0.76623377, 0.77922078, 0.79220779, 0.79220779,\n",
       "        0.76623377, 0.77922078, 0.80519481, 0.77922078, 0.74025974,\n",
       "        0.77922078, 0.77922078, 0.80519481, 0.74025974, 0.75324675,\n",
       "        0.76623377, 0.80519481, 0.81818182, 0.74025974, 0.75324675]),\n",
       " 'split1_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.75542692, 0.71490593,\n",
       "        0.6512301 , 0.6512301 , 0.76555716, 0.79015919, 0.85672938,\n",
       "        0.6512301 , 0.76121563, 0.77713459, 0.80028944, 0.94645441,\n",
       "        0.76266281, 0.77568741, 0.7829233 , 0.83502171, 0.99855282,\n",
       "        0.77568741, 0.78002894, 0.79015919, 0.87409551, 1.        ,\n",
       "        0.77279305, 0.78581766, 0.80752533, 0.9276411 , 1.        ]),\n",
       " 'split2_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.75324675, 0.72727273,\n",
       "        0.64935065, 0.64935065, 0.76623377, 0.79220779, 0.74025974,\n",
       "        0.64935065, 0.76623377, 0.80519481, 0.77922078, 0.68831169,\n",
       "        0.76623377, 0.80519481, 0.79220779, 0.76623377, 0.57142857,\n",
       "        0.81818182, 0.80519481, 0.76623377, 0.75324675, 0.57142857,\n",
       "        0.79220779, 0.79220779, 0.76623377, 0.63636364, 0.57142857]),\n",
       " 'split2_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.74529667, 0.71201158,\n",
       "        0.6512301 , 0.6512301 , 0.7698987 , 0.78581766, 0.86685962,\n",
       "        0.6512301 , 0.76845152, 0.78147612, 0.79884226, 0.95224313,\n",
       "        0.76555716, 0.77568741, 0.78002894, 0.83502171, 0.99565847,\n",
       "        0.77134588, 0.78002894, 0.79160637, 0.89435601, 1.        ,\n",
       "        0.78002894, 0.7829233 , 0.80318379, 0.93777135, 1.        ]),\n",
       " 'split3_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.67532468, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.68831169, 0.74025974, 0.71428571,\n",
       "        0.64935065, 0.67532468, 0.75324675, 0.72727273, 0.68831169,\n",
       "        0.67532468, 0.74025974, 0.74025974, 0.71428571, 0.63636364,\n",
       "        0.74025974, 0.76623377, 0.71428571, 0.71428571, 0.61038961,\n",
       "        0.76623377, 0.74025974, 0.7012987 , 0.67532468, 0.61038961]),\n",
       " 'split3_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.76700434, 0.73082489,\n",
       "        0.6512301 , 0.6512301 , 0.77568741, 0.79015919, 0.86251809,\n",
       "        0.6512301 , 0.77713459, 0.77713459, 0.81476122, 0.94500724,\n",
       "        0.77713459, 0.78002894, 0.79015919, 0.83791606, 0.99710564,\n",
       "        0.77858177, 0.77858177, 0.80028944, 0.89001447, 1.        ,\n",
       "        0.77858177, 0.79305355, 0.81910275, 0.93342981, 1.        ]),\n",
       " 'split4_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.72727273, 0.67532468,\n",
       "        0.64935065, 0.64935065, 0.74025974, 0.75324675, 0.75324675,\n",
       "        0.64935065, 0.74025974, 0.74025974, 0.76623377, 0.75324675,\n",
       "        0.74025974, 0.74025974, 0.74025974, 0.71428571, 0.71428571,\n",
       "        0.74025974, 0.74025974, 0.76623377, 0.68831169, 0.68831169,\n",
       "        0.74025974, 0.74025974, 0.77922078, 0.67532468, 0.68831169]),\n",
       " 'split4_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.76121563, 0.72503618,\n",
       "        0.6512301 , 0.6512301 , 0.77279305, 0.7959479 , 0.8683068 ,\n",
       "        0.6512301 , 0.77279305, 0.78726483, 0.80463097, 0.94500724,\n",
       "        0.77279305, 0.77858177, 0.78726483, 0.83646889, 0.99710564,\n",
       "        0.78002894, 0.79160637, 0.79739508, 0.87409551, 1.        ,\n",
       "        0.78581766, 0.7829233 , 0.81910275, 0.92908828, 1.        ]),\n",
       " 'split5_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.75324675, 0.67532468,\n",
       "        0.64935065, 0.64935065, 0.80519481, 0.80519481, 0.74025974,\n",
       "        0.64935065, 0.80519481, 0.79220779, 0.76623377, 0.72727273,\n",
       "        0.80519481, 0.79220779, 0.79220779, 0.71428571, 0.68831169,\n",
       "        0.79220779, 0.77922078, 0.76623377, 0.75324675, 0.71428571,\n",
       "        0.77922078, 0.77922078, 0.72727273, 0.67532468, 0.71428571]),\n",
       " 'split5_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.75253256, 0.71780029,\n",
       "        0.6512301 , 0.6512301 , 0.75832127, 0.78871201, 0.86541245,\n",
       "        0.6512301 , 0.76266281, 0.77713459, 0.81765557, 0.93632417,\n",
       "        0.76266281, 0.77713459, 0.78581766, 0.83791606, 0.99276411,\n",
       "        0.77568741, 0.78437048, 0.80318379, 0.87554269, 1.        ,\n",
       "        0.78726483, 0.78726483, 0.82199711, 0.93053546, 1.        ]),\n",
       " 'split6_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.72727273, 0.7012987 ,\n",
       "        0.64935065, 0.64935065, 0.75324675, 0.81818182, 0.81818182,\n",
       "        0.64935065, 0.75324675, 0.79220779, 0.80519481, 0.76623377,\n",
       "        0.75324675, 0.80519481, 0.80519481, 0.77922078, 0.7012987 ,\n",
       "        0.79220779, 0.80519481, 0.77922078, 0.75324675, 0.67532468,\n",
       "        0.80519481, 0.80519481, 0.77922078, 0.71428571, 0.67532468]),\n",
       " 'split6_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.75542692, 0.71201158,\n",
       "        0.6512301 , 0.6512301 , 0.76845152, 0.79015919, 0.86396527,\n",
       "        0.6512301 , 0.77134588, 0.77568741, 0.80318379, 0.93487699,\n",
       "        0.76845152, 0.77134588, 0.78871201, 0.83357453, 0.99421129,\n",
       "        0.77568741, 0.78002894, 0.7959479 , 0.87988423, 1.        ,\n",
       "        0.77858177, 0.78437048, 0.81476122, 0.92619392, 1.        ]),\n",
       " 'split7_test_score': array([0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.64935065, 0.64935065,\n",
       "        0.64935065, 0.64935065, 0.64935065, 0.79220779, 0.7012987 ,\n",
       "        0.64935065, 0.64935065, 0.81818182, 0.81818182, 0.81818182,\n",
       "        0.64935065, 0.80519481, 0.79220779, 0.79220779, 0.75324675,\n",
       "        0.80519481, 0.80519481, 0.79220779, 0.79220779, 0.76623377,\n",
       "        0.80519481, 0.80519481, 0.75324675, 0.77922078, 0.76623377,\n",
       "        0.79220779, 0.79220779, 0.77922078, 0.76623377, 0.76623377]),\n",
       " 'split7_train_score': array([0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 , 0.6512301 ,\n",
       "        0.6512301 , 0.6512301 , 0.6512301 , 0.73950796, 0.69898698,\n",
       "        0.6512301 , 0.6512301 , 0.76121563, 0.78147612, 0.86107091,\n",
       "        0.6512301 , 0.76410999, 0.77424023, 0.80318379, 0.94645441,\n",
       "        0.76410999, 0.7698987 , 0.78581766, 0.83212735, 0.99565847,\n",
       "        0.7698987 , 0.77713459, 0.79884226, 0.87264834, 1.        ,\n",
       "        0.7698987 , 0.78437048, 0.81476122, 0.92185239, 1.        ]),\n",
       " 'split8_test_score': array([0.65789474, 0.65789474, 0.65789474, 0.65789474, 0.65789474,\n",
       "        0.65789474, 0.65789474, 0.65789474, 0.65789474, 0.65789474,\n",
       "        0.65789474, 0.65789474, 0.65789474, 0.65789474, 0.65789474,\n",
       "        0.65789474, 0.65789474, 0.65789474, 0.67105263, 0.67105263,\n",
       "        0.65789474, 0.65789474, 0.71052632, 0.69736842, 0.75      ,\n",
       "        0.65789474, 0.72368421, 0.72368421, 0.73684211, 0.71052632,\n",
       "        0.72368421, 0.71052632, 0.71052632, 0.73684211, 0.65789474,\n",
       "        0.71052632, 0.73684211, 0.72368421, 0.73684211, 0.68421053,\n",
       "        0.75      , 0.71052632, 0.75      , 0.71052632, 0.68421053]),\n",
       " 'split8_train_score': array([0.65028902, 0.65028902, 0.65028902, 0.65028902, 0.65028902,\n",
       "        0.65028902, 0.65028902, 0.65028902, 0.65028902, 0.65028902,\n",
       "        0.65028902, 0.65028902, 0.65028902, 0.65028902, 0.65028902,\n",
       "        0.65028902, 0.65028902, 0.65028902, 0.76156069, 0.71820809,\n",
       "        0.65028902, 0.65028902, 0.7716763 , 0.80057803, 0.8699422 ,\n",
       "        0.65028902, 0.77312139, 0.79046243, 0.80635838, 0.94653179,\n",
       "        0.77312139, 0.78757225, 0.79624277, 0.83815029, 0.99566474,\n",
       "        0.78757225, 0.78323699, 0.80491329, 0.88728324, 1.        ,\n",
       "        0.78901734, 0.79624277, 0.82369942, 0.93208092, 1.        ]),\n",
       " 'split9_test_score': array([0.65789474, 0.65789474, 0.65789474, 0.65789474, 0.65789474,\n",
       "        0.65789474, 0.65789474, 0.65789474, 0.65789474, 0.65789474,\n",
       "        0.65789474, 0.65789474, 0.65789474, 0.65789474, 0.65789474,\n",
       "        0.65789474, 0.65789474, 0.65789474, 0.81578947, 0.71052632,\n",
       "        0.65789474, 0.65789474, 0.81578947, 0.81578947, 0.81578947,\n",
       "        0.65789474, 0.81578947, 0.80263158, 0.82894737, 0.76315789,\n",
       "        0.81578947, 0.81578947, 0.81578947, 0.82894737, 0.72368421,\n",
       "        0.81578947, 0.81578947, 0.78947368, 0.86842105, 0.71052632,\n",
       "        0.81578947, 0.81578947, 0.82894737, 0.76315789, 0.71052632]),\n",
       " 'split9_train_score': array([0.65028902, 0.65028902, 0.65028902, 0.65028902, 0.65028902,\n",
       "        0.65028902, 0.65028902, 0.65028902, 0.65028902, 0.65028902,\n",
       "        0.65028902, 0.65028902, 0.65028902, 0.65028902, 0.65028902,\n",
       "        0.65028902, 0.65028902, 0.65028902, 0.74855491, 0.70375723,\n",
       "        0.65028902, 0.65028902, 0.76300578, 0.78612717, 0.85693642,\n",
       "        0.65028902, 0.76300578, 0.7716763 , 0.81069364, 0.93786127,\n",
       "        0.76156069, 0.77023121, 0.78757225, 0.82803468, 0.99277457,\n",
       "        0.76878613, 0.77023121, 0.79624277, 0.87716763, 1.        ,\n",
       "        0.76589595, 0.78468208, 0.80635838, 0.9234104 , 1.        ]),\n",
       " 'std_fit_time': array([4.84357903e-04, 3.88743741e-05, 1.62953648e-05, 2.67962225e-05,\n",
       "        3.44355409e-04, 1.12083323e-04, 3.20282329e-05, 3.69625391e-05,\n",
       "        4.51499641e-05, 3.90855903e-05, 2.28732900e-05, 5.01673766e-05,\n",
       "        7.12311766e-05, 6.96606907e-05, 6.28319088e-05, 3.71148431e-05,\n",
       "        5.89305911e-05, 7.14006485e-05, 8.04017161e-05, 8.39854987e-05,\n",
       "        6.19602137e-05, 4.08694580e-05, 1.08769587e-04, 1.32043726e-04,\n",
       "        2.19022239e-04, 8.50661486e-05, 9.78838677e-05, 2.47152166e-04,\n",
       "        2.43465699e-04, 7.39072376e-04, 1.19918630e-04, 1.70653199e-04,\n",
       "        1.93092550e-04, 1.07350782e-03, 3.01412061e-03, 1.81238484e-04,\n",
       "        7.34001557e-05, 2.26816430e-03, 1.26307555e-02, 1.51419657e-03,\n",
       "        3.07893370e-04, 2.46361276e-03, 2.35634676e-02, 8.91879271e-02,\n",
       "        1.51186878e-03]),\n",
       " 'std_score_time': array([6.56505765e-05, 8.63114772e-06, 5.28735868e-06, 3.27085614e-06,\n",
       "        5.12334234e-05, 7.91783040e-06, 7.01003332e-06, 1.08727499e-05,\n",
       "        8.27092573e-06, 8.13437234e-06, 5.32100916e-06, 4.37548437e-06,\n",
       "        7.80994636e-06, 5.21063246e-06, 9.06316799e-06, 4.17613809e-06,\n",
       "        9.11869251e-06, 4.86519969e-06, 6.39748623e-06, 8.43961359e-06,\n",
       "        4.84899080e-06, 7.78227606e-06, 1.33109543e-05, 1.05705506e-05,\n",
       "        9.59545185e-06, 7.55587561e-06, 1.14420054e-05, 1.14712790e-05,\n",
       "        1.28176099e-05, 2.24951562e-05, 7.76384762e-06, 1.21882040e-05,\n",
       "        2.05384149e-05, 1.29404196e-05, 1.77643602e-05, 9.71979067e-06,\n",
       "        1.15468459e-05, 2.51029404e-05, 3.20105156e-05, 2.17113337e-05,\n",
       "        1.39760678e-05, 1.24720266e-05, 1.27492426e-05, 4.25043292e-05,\n",
       "        2.05001162e-05]),\n",
       " 'std_test_score': array([0.00340421, 0.00340421, 0.00340421, 0.00340421, 0.00340421,\n",
       "        0.00340421, 0.00340421, 0.00340421, 0.00340421, 0.00340421,\n",
       "        0.00340421, 0.00340421, 0.00340421, 0.00340421, 0.00340421,\n",
       "        0.00340421, 0.00340421, 0.00340421, 0.04455625, 0.02270587,\n",
       "        0.00340421, 0.00340421, 0.04123095, 0.04067657, 0.04758169,\n",
       "        0.00340421, 0.04070221, 0.02996449, 0.0343609 , 0.03977858,\n",
       "        0.04070221, 0.03665907, 0.03619484, 0.03766259, 0.05325215,\n",
       "        0.03711748, 0.03293562, 0.0318966 , 0.04886044, 0.056484  ,\n",
       "        0.02961173, 0.03567926, 0.04358786, 0.04014663, 0.056484  ]),\n",
       " 'std_train_score': array([0.00037643, 0.00037643, 0.00037643, 0.00037643, 0.00037643,\n",
       "        0.00037643, 0.00037643, 0.00037643, 0.00037643, 0.00037643,\n",
       "        0.00037643, 0.00037643, 0.00037643, 0.00037643, 0.00037643,\n",
       "        0.00037643, 0.00037643, 0.00037643, 0.00793282, 0.00904294,\n",
       "        0.00037643, 0.00037643, 0.00519457, 0.00616507, 0.0052543 ,\n",
       "        0.00037643, 0.0050824 , 0.00621226, 0.00626488, 0.00516479,\n",
       "        0.00501363, 0.0052403 , 0.00463507, 0.00309729, 0.0019458 ,\n",
       "        0.00543842, 0.00554131, 0.0067363 , 0.00713195, 0.        ,\n",
       "        0.00733454, 0.00500277, 0.00723556, 0.00517544, 0.        ])}"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mSVC =  SVC(kernel='rbf')\n",
    "mC = [0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]\n",
    "mGamma = np.logspace(-3, 1, 5)  \n",
    "para = dict(C = mC,gamma=mGamma)\n",
    "mgrid= GridSearchCV(mSVC, para, cv=10, return_train_score='True')\n",
    "mgrid.fit(X,y)\n",
    "mgrid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7747395833333334\n",
      "{'C': 1, 'gamma': 1.0}\n"
     ]
    }
   ],
   "source": [
    "#显示最佳参数\n",
    "print(mgrid.best_score_)\n",
    "print(mgrid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个结果与之前得出的三个最佳参数其中一组相同"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "疑问：\n",
    "1.一个特征项中有大量的0值，其它为随机数，如何设置权重\n",
    "2.线性SVM参数调优时得到的值每次运算都不一样，为何会这样\n",
    "3.RBF 核的 SVM得到三个最佳参数，为何会这样"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
